We are seeing the message "Application must execute a rollback. The unit of work has already been rolled back in the database but other resource managers involved in this unit of work might not. To ensure integrity of this application, all SQL requests will be rejected until the application issues a rollback." quite regularly in our application logs. The application is built with Hibernate 2.1.8 and is running on WAS 5.1 for AIX and DB2 Universal 8.1. This error message is indicating that the database has rolled back a transaction but that the transaction monitor (WebSphere) has not. Is there something we need to do on the Hibernate side to make this happen? We are definitely calling rollback on the transaction in a try/catch block. It seems that this message is appearing after a deadlock occurs and a deadlock victim is chosen (separate issue).
Our customer is using the DB2 Universal JDBC Driver (XA) and we are using WebSphereTransactionManagerLookup as our transaction manager lookup class. Should we be using WebSphereExtendedJTATransactionLookup instead? We tried this in our development server but run into the 'could not register synchronization with JTA TransactionManager / Name comp/websphere not found in context "java:"' problem that has been posted about previously by other users.
Thanks in advance for any help you can provide!
Bryan
Hibernate version: 2.1.8
Full stack trace of any exception that occurs:
[10/13/07 16:07:36:017 EDT] 3ab293be WSRdbManagedC W DSRA0080E: An exception was received by the Data Store Adapter. See original exception message: com.ibm.db2.jcc.a.SqlException: Application must execute a rollback. The unit of work has already been rolled back in the database but other resource managers involved in this unit of work might not. To ensure integrity of this application, all SQL requests will be rejected until the application issues a rollback.
at com.ibm.db2.jcc.a.SqlException.a(SqlException.java(Compiled Code))
at com.ibm.db2.jcc.a.gg.a(gg.java(Compiled Code))
at com.ibm.db2.jcc.a.gg.a(gg.java(Inlined Compiled Code))
at com.ibm.db2.jcc.a.SqlException.getMessage(SqlException.java(Compiled Code))
at java.lang.Throwable.getLocalizedMessage(Throwable.java:131)
at java.lang.Throwable.toString(Throwable.java:152)
at java.lang.String.valueOf(String.java(Compiled Code))
at java.io.PrintStream.print(PrintStream.java:440)
at java.io.PrintStream.println(PrintStream.java:577)
at java.lang.Throwable.printStackTrace(Throwable.java:205)
at com.ibm.ws.ffdc.CallStack.callStack(CallStack.java(Compiled Code))
at com.ibm.ws.ffdc.CallStack.getCallStack(CallStack.java(Compiled Code))
at com.ibm.ws.ffdc.FFDCFilter.filterEngine(FFDCFilter.java(Compiled Code))
at com.ibm.ws.ffdc.FFDCFilter.processException(FFDCFilter.java(Inlined Compiled Code))
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java(Compiled Code))
at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java(Compiled Code))
at net.sf.hibernate.loader.Loader.getResultSet(Loader.java(Compiled Code))
at net.sf.hibernate.loader.Loader.doQuery(Loader.java(Compiled Code))
at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java(Compiled Code))
at net.sf.hibernate.loader.Loader.doList(Loader.java(Inlined Compiled Code))
at net.sf.hibernate.loader.Loader.list(Loader.java(Compiled Code))
at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java(Inlined Compiled Code))
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java(Compiled Code))
at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java(Compiled Code))
at avatar.hibernate.HibernateToolkit.listObjects(HibernateToolkit.java(Compiled Code))
at olgcsurv.struts.occurrence.OccurrenceActions.viewOccurrenceNotificationsExternal(OccurrenceActions.java:3610)
at java.lang.reflect.Method.invoke(Native Method)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java(Compiled Code))
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java(Compiled Code))
at olgcsurv.struts.SurveillanceBaseDispatchAction.execute(SurveillanceBaseDispatchAction.java(Compiled Code))
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java(Inlined Compiled Code))
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java(Compiled Code))
at org.apache.struts.action.ActionServlet.process(ActionServlet.java(Inlined Compiled Code))
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java(Inlined Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java(Inlined Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java(Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java(Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java(Compiled Code))
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java(Compiled Code))
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java(Compiled Code))
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java(Compiled Code))
at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java(Compiled Code))
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java(Compiled Code))
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java(Compiled Code))
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java(Compiled Code))
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java(Compiled Code))
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java(Compiled Code))
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
Name and version of the database you are using: DB2 Universal 8.1 FP 11 / WAS 5.1 for AIX
The generated SQL (show_sql=true): Only occurs in production, customer not willing to enable this in production.
Debug level Hibernate log excerpt: Only occurs in production, customer not willing to enable this in production.
|