Status: Reopened (View Workflow)
Affects Version/s: JBossAS-4.2.3.GA
Fix Version/s: No Release
Component/s: JMS (JBossMQ)
Problem is that when using a transacted QueueSession, when closing QueueSession#close invokes QueueSession#internalRollback to clean-up any unacknowledged messages, but also starts a new transaction, which is added to QueueConnection's SpyXAResourceProvider.
Since this transaction is never committed or rolled-back, it stays for the lifetime of the QueueConnection, which can be like forever when cacheing the QueueConnection. Also see "Steps to Reproduce"
Will attach MAT screenshot.
This occurs in JBossMQ of 4.2.3, but also 4.0.5 (and probably all 4.x)
I am aware of the EOL of JBoss 4.x, but will attach a proposed patch anyways.
- Do not use transacted QueueSessions
- Close and nullify the QueueConnection from time to time to let GC clean-up the leaked objects