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.3.0, 5.2.0, 5.1.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


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.

Reply via email to