[jboss-user] [Tomcat, HTTPD, Servlets & JSP] - JBoss Transactions in AS5.0.0.GA

rnicholson10 do-not-reply at jboss.com
Fri Dec 19 05:36:21 EST 2008


We recently moved from JBoss AS 4.0.5.GA to AS 5.0.0.GA and have begun testing our applications. The first problem I'm having is to do with transactions. In 4.0.5.GA there are no issues, but in the new version I'm getting the following exception:

java.lang.IllegalStateException: Can't lock a TransactionLocal after the Transaction has ended

followed by the following: 

2008-12-18 13:22:34,505 ERROR [org.jboss.web.tomcat.service.jca.CachedConnectionValve] (http-0.0.0.0-8080-2) Application error: action did not complete its transaction suspended tx=TransactionImple < ac, BasicAction: 7f000001:e47f:49491afc:a32 status: ActionStatus.COMMITTED >

If I try to start another transaction after these errors I get a null pointer exception. The transaction completes successfully on all DB's. Has something changed drastically between the 2 AS releases? Any help would be greatly appreciated.

Code is like this:


  | 	    TransactionManager transactionManager = TransactionManagerLocator.getInstance().locate();
  | 	    Transaction transaction = null;
  | 		
  | 	    try
  | 	    {
  | 		//Begin the transaction and then get the transaction...
  | 	    	transactionManager.begin();
  | 		transaction = transactionManager.getTransaction();
  | 
  | 		//Update on DB1
  | 		//Update on DB2
  | 		//Update on DB3
  | 
  | 	    	transaction.commit();
  | 	    }
  | 	    catch(Exception e)
  | 	    {
  | 	    	try
  | 	    	{
  | 	    	    transaction.rollback();
  | 	    	}
  | 	    	catch (SystemException se)
  | 	    	{
  | 	    	    log.debug(se);
  | 	    	}
  |       
  | 	    }
  | 	    finally
  | 	    {
  | 	    	try
  | 	    	{
  | 	    	    //close all resources
  | 	    	}
  | 	    	catch(SQLException se)
  | 	    	{ 
  | 	    	    log.error("SQLException: "+ se); 		  
  | 	    	}
  | 	    }
  | 
  | 

Stack trace as follows:


  | 2008-12-18 13:22:32,437 DEBUG [org.jboss.resource.connectionmanager.CachedConnectionManager] (http-0.0.0.0-8080-2) Unable to synchronize with transaction
  | java.lang.IllegalStateException: Can't lock a TransactionLocal after the Transaction has ended
  |         at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.lock(BaseTransactionManagerDelegate.java:226)
  |         at org.jboss.tm.TransactionLocal.lock(TransactionLocal.java:109)
  |         at org.jboss.resource.connectionmanager.TransactionSynchronizer.lock(TransactionSynchronizer.java:222)
  |         at org.jboss.resource.connectionmanager.CachedConnectionManager.getCloseConnectionSynchronization(CachedConnectionManager.java:545)
  |         at org.jboss.resource.connectionmanager.CachedConnectionManager.unregisterConnection(CachedConnectionManager.java:303)
  |         at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.connectionClosed(TxConnectionManager.java:720)
  |         at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.closeHandle(BaseWrapperManagedConnection.java:362)
  |         at org.jboss.resource.adapter.jdbc.WrappedConnection.close(WrappedConnection.java:155)
  |         at com.paddypower.shopwallet.db.MultipleDatabaseDAO.performTransaction(MultipleDatabaseDAO.java:286)
  |         at com.paddypower.shopwallet.action.WalletLDAction.performTransaction(WalletLDAction.java:589)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  |         at java.lang.reflect.Method.invoke(Unknown Source)
  |         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:266)
  |         at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:167)
  |         at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:143)
  |         at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53)
  |         at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64)
  |         at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
  |         at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
  |         at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
  |         at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
  |         at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
  |         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
  |         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
  |         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
  |         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  |         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  |         at java.lang.Thread.run(Unknown Source)
  | 2008-12-18 13:22:32,438 DEBUG [org.jboss.resource.connectionmanager.CachedConnectionManager] (http-0.0.0.0-8080-2) Unable to synchronize with transaction
  | java.lang.IllegalStateException: Can't lock a TransactionLocal after the Transaction has ended
  |         at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.lock(BaseTransactionManagerDelegate.java:226)
  |         at org.jboss.tm.TransactionLocal.lock(TransactionLocal.java:109)
  |         at org.jboss.resource.connectionmanager.TransactionSynchronizer.lock(TransactionSynchronizer.java:222)
  |         at org.jboss.resource.connectionmanager.CachedConnectionManager.getCloseConnectionSynchronization(CachedConnectionManager.java:545)
  |         at org.jboss.resource.connectionmanager.CachedConnectionManager.unregisterConnection(CachedConnectionManager.java:303)
  |         at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.connectionClosed(TxConnectionManager.java:720)
  |         at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.closeHandle(BaseWrapperManagedConnection.java:362)
  |         at org.jboss.resource.adapter.jdbc.WrappedConnection.close(WrappedConnection.java:155)
  |         at com.paddypower.shopwallet.db.MultipleDatabaseDAO.performTransaction(MultipleDatabaseDAO.java:287)
  |         at com.paddypower.shopwallet.action.WalletLDAction.performTransaction(WalletLDAction.java:589)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  |         at java.lang.reflect.Method.invoke(Unknown Source)
  |         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:266)
  |         at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:167)
  |         at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:143)
  |         at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53)
  |         at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64)
  |         at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
  |         at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
  |         at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
  |         at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
  |         at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
  |         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
  |         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
  |         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
  |         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  |         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  |         at java.lang.Thread.run(Unknown Source)
  | 2008-12-18 13:22:32,468 DEBUG [org.jboss.web.tomcat.service.jasper.TagLibCache] (http-0.0.0.0-8080-2) Scanning for tlds in: vfsfile:/opt/jboss-5.0.0.GA/server/default/deploy/jbossweb.sar/jsf-libs/jsf-impl.jar
  | 2008-12-18 13:22:32,687 DEBUG [org.jboss.web.tomcat.service.jasper.TagLibCache] (http-0.0.0.0-8080-2) Scanning for tlds in: vfsfile:/opt/jboss-5.0.0.GA/server/default/deploy/jbossweb.sar/jstl.jar
  | 2008-12-18 13:22:34,505 ERROR [org.jboss.web.tomcat.service.jca.CachedConnectionValve] (http-0.0.0.0-8080-2) Application error: action did not complete its transaction suspended tx=TransactionImple < ac, BasicAction: 7f000001:e47f:49491afc:a32 status: ActionStatus.COMMITTED >
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4197572#4197572

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4197572



More information about the jboss-user mailing list