You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2010/04/02 01:29:08 UTC
[jira] Resolved: (AMQ-2556) Memory leaks with XA Transactions (case
of read-only transactions)
[ https://issues.apache.org/activemq/browse/AMQ-2556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Tully resolved AMQ-2556.
-----------------------------
Resolution: Fixed
Fix Version/s: 5.4.0
thanks for the great test case, issue resolved on trunk in r930135
state on the client, broker and failover transport needed to be reclaimed on prepare readonly.
> Memory leaks with XA Transactions (case of read-only transactions)
> ------------------------------------------------------------------
>
> Key: AMQ-2556
> URL: https://issues.apache.org/activemq/browse/AMQ-2556
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, JMS client
> Affects Versions: 5.1.0, 5.2.0, 5.3.0
> Environment: ActiveMQ 5.3.0
> Atomikos Transactions Essentials 3.5.8
> Spring 2.5.6
> Oracle 11g (thin driver version 11.1.0.7.0)
> Reporter: Daniel Santos
> Assignee: Gary Tully
> Fix For: 5.4.0
>
> Attachments: XAConsumer.zip
>
>
> Some transaction related information are not released in case of read-only transactions (where not messages have been consumed or produced) by broker and client, that causes an OutOfMemory after running some time.
> Fields that hold these "transaction related information" are (at least) :
> - {{org.apache.activemq.state.ConnectionState.transactions}}
> - {{org.apache.activemq.TransactionContext.ENDED_XA_TRANSACTION_CONTEXTS}}
> After serach, it seems that the case of read-only XA transactions (that terminates at prepare time) has been missed in some code like :
> - {{org.apache.activemq.broker.TransportConnection}} that puts TransactionState in {{org.apache.activemq.state.ConnectionState.transactions}} at the beginning, release them at commit (or rollback) time *but not at prepare time where result is {{XAResource.XA_RDONLY}}*
> - {{org.apache.activemq.TransactionContext}} that do the same mistake via ENDED_XA_TRANSACTION_CONTEXTS in prepare()
> _Note that the case of read-only transactions seems correctly done by {{org.apache.activemq.transaction.XATransaction}} (very interesting comment here http://fisheye6.atlassian.com/browse/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transaction/XATransaction.java?r=809940#l175)_
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.