Atomikos Forum |
|
Version: 4.0.0M4
There's a bug in transactionContext state transitions. In a transaction: 1.getConnection -> NotInBranch 2.do some createStatement method -> BranchEnlisted 3.close() BranchEnded 4.getConnection again, because recycle a connection, A state from BranchEnded to NotInBranch (this is not included in the state diagram) 5.close() from NotInBranch to Terminated 6.getConnection again, because the state is Terminated, recycle not work, a new connection returnned. 7.do some createStatement, when enlist(), the transaction is in LOCALLY_DONE state, but the connection is a new connection and havn't seen this transaction, now it is call start(TMJOIN) on a XAResource that not known the xid, this will thrown a exception. |