Atomikos Forum |
|
Hi,
we face a issue, that we cannot explain to ourself. We have n queues with each time one JMS listener on it. Each of this threads will open a connection to a DB to put business data there in a nested transaction. Since we are using XATransaction in Atomikos, one thread is always blocking the other ones, so that effectively we are only working single threaded. Till now we have problems to understand, if this is naturally correct in case of XA or a certain problem of Atomikos. This occurs in the locked threads: "listenerContainerLogging-8" prio=1 tid=0x000000004da248d0 nid=0x6742 waiting for monitor entry [0x000000004c24b000..0x000000004c24bc90] at com.atomikos.persistence.imp.StreamObjectLog.flush(StreamObjectLog.java:192) - waiting to lock <0x00002b7278c1b7c8> (a com.atomikos.persistence.imp.StreamObjectLog) at com.atomikos.persistence.imp.StateRecoveryManagerImp.preEnter(StateRecoveryManagerImp.java:127) at com.atomikos.finitestates.FSMImp.notifyListeners(FSMImp.java:195) at com.atomikos.finitestates.FSMImp.setState(FSMImp.java:283) - locked < 0x00002b72a8101628> (a com.atomikos.finitestates.FSMImp) at com.atomikos.icatch.imp.CoordinatorImp.setState(CoordinatorImp.java:481) at com.atomikos.icatch.imp.CoordinatorStateHandler.commit(CoordinatorStateHandler.java:621) at com.atomikos.icatch.imp.IndoubtStateHandler.commit(IndoubtStateHandler.java:225) at com.atomikos.icatch.imp.CoordinatorImp.commit(CoordinatorImp.java:807) - locked < 0x00002b72a8101628> (a com.atomikos.finitestates.FSMImp) at com.atomikos.icatch.imp.CoordinatorImp.terminate(CoordinatorImp.java:1106) - locked < 0x00002b72a8101628> (a com.atomikos.finitestates.FSMImp) at com.atomikos.icatch.imp.CompositeTerminatorImp.commit(CompositeTerminatorImp.java:151) at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:297) at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:608) at com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:168) at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842) If someone is interested, we can even provide a nice threaddump with several snapshots. Kind regards p.s. Nevertheless we will try to reconfigure our application to compare with another transaction manager |