OK, I believe I have found the problem. TransactionImple terminates the transaction via
the TwoPhaseCoordinator methods end and cancel. These do not affect the TransactionReaper:
only the AtomicAction methods commit and abort do that. Hence the transaction remains
referenced by the reaper until the timeout goes off, at which point the reaper will
discard it silently. So on the good side, the leak only exists for the duration of the
original timeout. On the bad side, there's a leak.
I'll take a look at this tomorrow to see how we fix it. It's not as simple as
terminating via AA versus TPC.
Caveat: I'm looking at the JBossTS 4.1 codebase, but I suspect this is the same.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4028166#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...