for test purpose i'd like to design an application with followng design:
. Session EJB as front controler (entry point method name: checkout)
This 'checkout()' method do:
. delegates db access to cmp (classical)
. After accessing send a message to a queue (received by an mdb)
With no Transaction purpose, all is fine.
Now I need to had transaction management over that:
If an exception is thrown during the onMessage of the mdb, modification
done by ejb must be rolled back...
It's an XA transaction... So I must tune my datasource to be an XA datasource: first quesion: How can I did it ? an exemple ? my db is hsqldb. second question: hsqldb supports xa transaction
I can i configure my jms queue to be an XA one ?
When i throw an exception in the 'onMessage' of my mdb next message
appears in jboss console:
TransactionRolledbackLocalException in method: public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message), causedBy: java.lang.RuntimeException