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#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...