Juan Manuel Lopez created AMQ-4687:
--------------------------------------
Summary: Rar losing messages when there is a XA trx timeout
(jboss)
Key: AMQ-4687
URL: https://issues.apache.org/jira/browse/AMQ-4687
Project: ActiveMQ
Issue Type: Bug
Affects Versions: 5.6.0
Environment: Jboss 6.0.1, JDK 1.6, ActiveMQ 5.6
Reporter: Juan Manuel Lopez
Fix For: 5.x
ActiveMQ does a trx commit when there is a transaction timeout
(EJBTransactionRolledbackException). In this way we are losing messages when
there is any timeout.
We have seen that the activemq connections are enlist in XA.
The attribute transactionContext from ActiveMQSession class has the global
transaction reference (xid) before calling the MDB
(messageListener.onMessage(message)).
When the timeout is reached and the RuntimeException is throwned, the
transactionContext losed the xid reference.
Later, when ActiveMQSession call the method
transactionContext.isInXATransaction() the result is false because there is no
xid reference.
I found this jira https://issues.apache.org/jira/browse/AMQ-4634 but is
possible move this fix into version ActiveMQ 5.6 ?
This situation only happened when the MDB calls other EJB (Stateless) with CMT
- TransactionAttributeType.REQUIRES_NEW, and the exception is throwed inside
the Stateless.
I've tried to reproduce this without calling the stateless ejb but it works
well.
The ActiveMQSession class should retain the original transactionContext.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira