You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gaston (JIRA)" <ji...@apache.org> on 2013/07/16 15:06:48 UTC

[jira] [Updated] (AMQ-4634) Losing messages when there is a XA trx timeout

     [ https://issues.apache.org/jira/browse/AMQ-4634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gaston updated AMQ-4634:
------------------------

    Attachment: logs.txt

JBoss server log
                
> Losing messages when there is a XA trx timeout
> ----------------------------------------------
>
>                 Key: AMQ-4634
>                 URL: https://issues.apache.org/jira/browse/AMQ-4634
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.6.0, 5.7.0, 5.8.0
>         Environment: JBoss 6.1.
> ActiveMQ 5.8.0 (also tested in 5.7.0 and 5.6.0) standalone mode.
>            Reporter: Gaston
>         Attachments: logs.txt
>
>
> 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.
> 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