activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMQ-4634) Rar losing messages when there is a XA trx timeout (jboss)
Date Fri, 19 Jul 2013 09:08:49 GMT

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

Gary Tully updated AMQ-4634:
----------------------------

    Summary: Rar losing messages when there is a XA trx timeout (jboss)  (was: Losing messages
when there is a XA trx timeout)
    
> Rar losing messages when there is a XA trx timeout (jboss)
> ----------------------------------------------------------
>
>                 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 Scapusio
>            Assignee: Gary Tully
>             Fix For: 5.9.0
>
>         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

Mime
View raw message