We have requirement for strict XA-enabled message transaction. We want message to be processed exactly once with ACID requirement.
But I am thinking if I can avoid XA (as XA transaction will be more costly), and looking for other work arounds.
We are using weblogic 9.2 app server and oracle 10G database.
Latest Weblogic 9.2 claims that, Transaction batching feature provided in current version helps increase performance of an EJB application by reducing the amount of database work required to process a transaction. The batching of multiple messages into a transaction greatly reduce the disk I/O-to-message ratio - potentially making transactional forwarding much faster than non-transactional forwarding.
I would like to throw open question to all:
Which combination is better ?
1. XA-transaction + message batching + Strictly only once message processing
2. Non XA-Transaction (handling transaction in bean) + allowing duplicate messages and taking care of same in code.
It would be really great if, you can share your practical experience.