Hi,

It seems that transaction states in the connection state tracker are not
cleaned up when doing rollback on a transaction.

>From what I understand, the
ConnectionStateTracker.processRollbackTransaction(TransactionInfo info)
returns a tracked response that should be handled asynchronously in the
transport thread when the broker replies. But the actual call to the broker
(from the TransactionContext.rollback method) is a oneway, so the
responseRequired flag is not set in the command, the broker never replies
and the Tracked object is never processed.

As a result, TransactionState objects reside forever in the ConnectionState,
and their corresponding Tracked objects in the requestMap of the
FailoverObject.

Is that correct, or have I missed something ?

Please find attached a test case 
http://www.nabble.com/file/p24868423/RollbackLeak.java RollbackLeak.java ,
tested on versions 5.2.0 and 5.3-SNAPSHOT.

Cheers,
Fabrice
-- 
View this message in context: 
http://www.nabble.com/Failover-transport-memory-leak-on-rollback-tp24868423p24868423.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to