4 Replies Latest reply on Jun 29, 2006 12:57 PM by subramaniam.venkat

    TxConnectionManager-Couldnot enlist in transaction, Local/XA

    shandrilavj

      Hi

      Any help will be greatly appreciated.

      This is the second time, in the last three days, we are seeing this exception happening in our Portal application. We have used Liferay Portal
      inside jboss-4.0.2.

      The application runs fine, and then all of a sudden we are seeing this exception.

      After the happening of this exception, the user is unable to use the local-tx- datasource. On restarting the service, we are good. We could not reproduce, the scenario in development and is unable to be reproduced on request.


      Liferay has EJB?s (all container managed) -> calling the authentication Pipeline -> calls custom singlesignon to validates the user -> control back to Liferay to validate user in Liferay DB.

      In normal scenario a login was giving a warning message

      2005-10-12 15:54:32,029 TRACE [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Getting connection tracked by transaction org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@1ccad9c[state=NORMAL mc=org.jboss.resource.adapter.jdbc.local.LocalManagedConnection@99e8f8 handles=0 lastUse=1129146871919 permit=true trackByTx=true mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@8e32b7 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@1a3a234] [InUse/Available/Max]: [1/9/10]

      2005-10-12 15:54:32,029 TRACE [org.jboss.ejb.plugins.StatelessSessionInstancePool] 0/100 Free instance:org.jboss.ejb.plugins.StatelessSessionInstancePool@1fa6bfc#null#TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/261, BranchQual=, localId=261]#true#class com.liferay.portal.ejb.UserManagerEJBImpl

      2005-10-12 15:54:32,029 TRACE [org.jboss.ejb.plugins.TxInterceptorCMT] TxInterceptorCMT: In finally

      2005-10-12 15:54:32,029 WARN [org.jboss.resource.connectionmanager.TxConnectionManager] Prepare called on a local tx. Use of local transactions on a jta transaction with more than one branch may result in inconsistent data in some cases of failure.


      This is the error message seen rarely and is causing the application to be restarted.
      (Not sure, if relates to this issue, but the before this error is happening the log shows up JTA errors on other portlets.)

      2005-10-09 21:24:30,073 DEBUG [com.adp.ebs.dao.ConnectionPool] Trying JNDI: java:/SSO

      2005-10-09 21:24:30,073 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Could not enlist in transaction on entering meta-aware object!

      javax.transaction.SystemException: Could not get XAResource from ManagedConnection!javax.transaction.RollbackException: Already marked for rollback TransactionImpl:XidImpl[FormatId=257, GlobalId=PAR1SIPORTAL/11954, BranchQual=, localId=11954]

      at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:441)

      at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:322)

      at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:583)

      at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:450)

      at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:874)

      at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:103)

      at com.adp.ebs.dao.ConnectionPool.getConnection(ConnectionPool.java:78)

      at com.adp.ebs.admin.services.user.UserMgmtDAC.getConnection(UserMgmtDAC.java:726)

      at com.adp.ebs.admin.services.user.UserMgmtDAC.getUserSeq(UserMgmtDAC.java:424)

      at com.adp.ebs.admin.services.user.UserMgmtServiceImpl.getUserSeq(UserMgmtServiceImpl.java:195)

      at com.adp.sbs.portal.auth.SSOAuth.ssoAuthenticate(SSOAuth.java:194)

      at com.adp.sbs.portal.auth.SSOAuth.authenticateByUserId(SSOAuth.java:77)

      at com.liferay.portal.auth.AuthPipeline._authenticate(AuthPipeline.java:104)

      at com.liferay.portal.auth.AuthPipeline.authenticateByUserId(AuthPipeline.java:49)

      at com.liferay.portal.ejb.UserManagerImpl._authenticate(UserManagerImpl.java:874)

      at com.liferay.portal.ejb.UserManagerImpl.authenticateByUserId(UserManagerImpl.java:132)




      I tested by making all the datasources XA. In this situation the application fails to boot up, with this error



      2005-10-12 15:43:27,085 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackException in method: public abstract com.liferay.portal.model.Layout com.liferay.portal.ejb.LayoutManager.getLayout(com.liferay.portal.ejb.LayoutPK) throws com.liferay.portal.PortalException,com.liferay.portal.SystemException,java.rmi.RemoteException, causedBy:

      org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/69, BranchQual=, localId=69] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException)

      at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:344)

      ?.

      ?

      2005-10-12 15:43:27,101 TRACE [org.jboss.ejb.plugins.LogInterceptor] End method=remove

      2005-10-12 15:43:27,101 INFO [STDOUT] com.liferay.portal.struts.ActionException: com.liferay.portal.struts.ActionException: com.liferay.portal.SystemException: org.jboss.tm.JBossTransactionRolledbackException: null; nested exception is:

      org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/69, BranchQual=, localId=69] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/69, BranchQual=, localId=69] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException))

      at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.java:140)

      at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.java:68)

      at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:594)



      if I change only the SSO datasource tobe XA and liferay continues as local-tx-datasource. Then the server boots up correctly.

      But when logging in and accessing SingleSignOn , after all SingleSignOn stuff is being performed, I end up getting the same error as above.

      2005-10-12 16:04:49,751 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackException in method: public abstract int com.liferay.portal.ejb.UserManager.authenticateByUserId(java.lang.String,java.lang.String,java.lang.String) throws com.liferay.portal.PortalException,com.liferay.portal.SystemException,java.rmi.RemoteException, causedBy:

      org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/951, BranchQual=, localId=951] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException)

      at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:344)

      at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486)

      ?.

      ?

      2005-10-12 16:04:49,783 ERROR [com.liferay.portal.servlet.MainServlet] org.jboss.tm.JBossTransactionRolledbackException: null; nested exception is:

      org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/951, BranchQual=, localId=951] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/951, BranchQual=, localId=951] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException))

      2005-10-12 16:04:49,783 INFO [STDOUT] com.liferay.portal.SystemException: org.jboss.tm.JBossTransactionRolledbackException: null; nested exception is:

      org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/951, BranchQual=, localId=951] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=par1net2app2/951, BranchQual=, localId=951] status=STATUS_NO_TRANSACTION; - nested throwable: (oracle.jdbc.xa.OracleXAException))

      at com.liferay.portal.ejb.UserManagerUtil.authenticateByUserId(UserManagerUtil.java:139)

      at com.liferay.portal.action.LoginAction._login(LoginAction.java:190)

      at com.liferay.portal.action.LoginAction.execute(LoginAction.java:99)

      at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)


      Thanks
      Shandrila