0 Replies Latest reply on Jan 11, 2013 11:24 AM by abl-dam

    Transaction timeouts leave UserTransaction object bound to the thread

    abl-dam Newbie

      we are using JBoss 7.1.1 and UserTransactions


      after a TX timeout of an UserTransaction, TX is in Status STATUS_ROLLEDBACK and TX keeps bound to the current thread even after the thread is returned to the pool.

      subsequent requests that get this thread will end with errors, cause they can not start a new TX:


      Caused by: javax.resource.ResourceException: IJ000460: Error checking for a transaction

      at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:362)

      at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)

      at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:129)

      ... 114 more

      Caused by: javax.resource.ResourceException: IJ000459: Transaction is not active: tx=TransactionImple < ac, BasicAction: 0:ffffac100d40:1e9980e9:50ed52b2:541f status: ActionStatus.ABORTED >

      at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:352)

      ... 116 more


      I searched around the web and found: https://issues.jboss.org/browse/JBAS-4481

      maybe an old issue found it's way back to the current AS version?!



      as a workaround we call userTx.rollback() even if the userTX is in ROLLEDBACK state. this removes the TX from the thread and fixes the problem but gives warning message:

      WARN [com.arjuna.ats.arjuna] (http-localhost- ARJUNA012077: Abort called on already aborted atomic action 0:ffff0a010169:-268a285c:50f036de:3b


      is this the way to handle the situation - application code should call rollback even if state is already ROLLEDBACK, or are we doing something wrong?

      anyone else had this problem?


      thanks for any hints