activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gaston (JIRA)" <>
Subject [jira] [Updated] (AMQ-4634) Losing messages when there is a XA trx timeout
Date Tue, 16 Jul 2013 13:06:48 GMT


Gaston updated AMQ-4634:

    Attachment: logs.txt

JBoss server log
> Losing messages when there is a XA trx timeout
> ----------------------------------------------
>                 Key: AMQ-4634
>                 URL:
>             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:

View raw message