[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Transaction management in JCA adapter is screwed up
ataylor
do-not-reply at jboss.com
Wed Jul 22 09:58:15 EDT 2009
Ive implemented this with the following changes.
anonymous wrote : 2) CMT, tx=NOT_SUPPORTED, local_optimisation = true
|
| MDB should be *non transacted* - it should use the ack mode as specified in the meta data
Ive made this option so that it uses the a local tx, this is to allow the user to run with *only* a single local tx. see next.
anonymous wrote : 4) CMT, REQUIRED, local_optimisation = true
|
| MDB should create a *** local tx *** *before delivery* and commit at completion of onMessage
When 'REQUIRED' is chosen then the container will always create a global tx no matter what. This happens when the call is made to endpoint..onMessage(message) method (endpoint is a proxy and creates the tx before the actual call to the MDB's onMessage). This means that there would be a local proxy and a global proxy. I've left this configurable and i'll explain fully in the docs how local optimization works.
anonymous wrote : 5) BMT, local_optimisation = false:
|
| MDB should be *non transacted* - it should use the ack mode as specified in the meta data (unless a user transaction is started)
The ack mode is always used. The outcome of a user transaction when used in an MDB has no effect on the actual delivery.
anonymous wrote : 6) BMT, local_optimisation = true
|
| MDB should be *non transacted* - it should use the ack mode as specified in the meta data (unless a user transaction is started)
I've allowed the user to be able to use local tx's if they want. because of the reason mentioned for 5). This means that if an exception is thrown from inside the MDb the user can have the message redelivered.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4245305#4245305
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4245305
More information about the jboss-dev-forums
mailing list