activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William Youmans (JIRA)" <>
Subject [jira] [Commented] (AMQ-3465) TransactionContext produces errors in concurrent environment
Date Thu, 15 Sep 2011 01:40:09 GMT


William Youmans commented on AMQ-3465:

I am experiencing similar issue as described in this JIRA bug report and in the nabble link.

> TransactionContext produces errors in concurrent environment
> ------------------------------------------------------------
>                 Key: AMQ-3465
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: Windows XP SP2, Oracle JDK 1.6.0_23
>            Reporter: Alexei Akimov
> Method "isInXATransaction" of class org.apache.activemq.TransactionContext seems to be
implemeted incorrectly. Here is the code:
> public boolean isInXATransaction() {
>     return (transactionId != null && transactionId.isXATransaction()) || !ENDED_XA_TRANSACTION_CONTEXTS.isEmpty();
> }
> Map "ENDED_XA_TRANSACTION_CONTEXTS" is a static field. TransactionContext instances are
used for both outbound and inbound communications. Suppose a thread creating a new non-transactional
session. It calls isInXATransaction and gets true, just because another thread is completing
transactional message delivery at the same time. After XAResource.end() call but before XAResource.commit()
call the map is not empty and it results in a JMSException in the first thread (see org.apache.activemq.ra.ManagedTransactionContext.setUseSharedTxContext(boolean)").

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message