Meine Anwendung versucht, eine verteilte Transaktion für 2 Datenbanken auf einem DB2-Server auszuführen, der Anwendungsserver ist websphere 6.1 und verwendet Atomikos als TM.Transaction commit werfende Ausnahme: Transaktion nur für Rollback gesetzt
UserTranaction.commit() mit folgenden Ausnahme versagt: javax.transaction.RollbackException: Transaktion setzt nur Den vollständigen Stack-Trace rückgängig zu machen ist:
[3/26/12 12:08:43:880 EDT] 0000001f SystemErr R javax.transaction.RollbackException: Transaction set to rollback only
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.atomikos.icatch.jta.TransactionImp.rethrowAsJtaRollbackException(TransactionImp.java:70)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:250)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:498)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:129)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.Servlet.InitialServlet.doPost(InitialServlet.java:131)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1101)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:569)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3440)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:815)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1461)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:118)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R Caused by: com.atomikos.icatch.RollbackException: Transaction set to rollback only
at com.atomikos.icatch.imp.TxRollbackOnlyStateHandler.commit(TxRollbackOnlyStateHandler.java:84)
at com.atomikos.icatch.imp.CompositeTransactionImp.doCommit(CompositeTransactionImp.java:319)
at com.atomikos.icatch.imp.CompositeTerminatorImp.commit(CompositeTerminatorImp.java:79)
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.Servlet.InitialServlet.doPost(InitialServlet.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1101)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:569)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3440)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:815)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1461)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:118)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.atomikos.icatch.imp.TxRollbackOnlyStateHandler.commit(TxRollbackOnlyStateHandler.java:84)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.atomikos.icatch.imp.CompositeTransactionImp.doCommit(CompositeTransactionImp.java:319)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.atomikos.icatch.imp.CompositeTerminatorImp.commit(CompositeTerminatorImp.java:79)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:236)
[3/26/12 12:08:43:896 EDT] 0000001f SystemErr R ... 24 more
Ich habe nicht die Transaktion eingestellt Rollback nur im Code. Ich denke, es ist standardmäßig eingestellt. Ich möchte es ändern und nicht auf RollbackOnly setzen. Außerdem rufe ich commit() explizit nach der Transaktion auf. Warum bekomme ich immer noch diese Ausnahme? Wie stelle ich sicher, dass die Transaktion festgeschrieben wird?