Atomikos Forum |
|
I have database inconsistencies in my transaction involving 2 databases. I am using the AtomikosDataSource bean to manage DB connections.
Following is the DB trace log showing the exception: [jcc][Thread:main][XAException@544ec1] javax.transaction.xa.XAException [jcc][Thread:main][XAException@544ec1] Message = [jcc][t4][2041][12326][3.53.70] Error executing XAResource.commit(). Server returned XAER_NOTA. ERRORCODE=-4203, SQLSTATE=null [jcc][Thread:main][XAException@544ec1] Stack trace follows com.ibm.db2.jcc.b.po: [jcc][t4][2041][12326][3.53.70] Error executing XAResource.commit(). Server returned XAER_NOTA. ERRORCODE=-4203, SQLSTATE=null at com.ibm.db2.jcc.b.bd.c(bd.java:453) at com.ibm.db2.jcc.t4.ac.b(ac.java:2675) at com.ibm.db2.jcc.t4.ac.a(ac.java:370) at com.ibm.db2.jcc.t4.ac.commit(ac.java:162) at com.atomikos.datasource.xa.XAResourceTransaction.commit(XAResourceTransaction.java:785) at com.atomikos.icatch.imp.CommitMessage.send(CommitMessage.java:73) at com.atomikos.icatch.imp.PropagationMessage.submit(PropagationMessage.java:111) at com.atomikos.icatch.imp.Propagator$PropagatorThread.run(Propagator.java:87) at com.atomikos.icatch.imp.Propagator.submitPropagationMessage(Propagator.java:66) at com.atomikos.icatch.imp.CoordinatorStateHandler.commit(CoordinatorStateHandler.java:614) at com.atomikos.icatch.imp.IndoubtStateHandler.commit(IndoubtStateHandler.java:193) at com.atomikos.icatch.imp.CoordinatorImp.commit(CoordinatorImp.java:863) at com.atomikos.icatch.imp.CoordinatorImp.terminate(CoordinatorImp.java:1162) at com.atomikos.icatch.imp.CompositeTerminatorImp.commit(CompositeTerminatorImp.java:92) at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:236) at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:498) at com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:129) at com.Controller.MainController.run(MainController.java:57) at com.util.BatchDriver.main(BatchDriver.java:18) I have the db update statement as well as commit statement written in try..catch blocks and i am catching all Exceptions. How is this exception slipping through? And if the exception is occuring in commit, why is the transaction still being committed on 1 DB and not the other? I am using TransactionEssentials v3.7.1 |