1 Reply Latest reply on Aug 11, 2015 10:36 AM by sreenathac

    Transaction Timeout to Return Immediately

    platypunk

      Hello,

       

      I have a transaction managed by Spring (3.1.0) and JBoss JTA (jboss-eap-6.0).

      <bean id="transactionManager"

                    class="org.springframework.transaction.jta.JtaTransactionManager">

                    <property name="transactionManagerName" value="java:/TransactionManager" />

             </bean>


      When we set the JTA transaction manager timeout, it seems to work, it kills the transaction at the timeout.

                <property name="defaultTimeout" value="10" />

       

      2014-04-08 17:46:47,160 WARN  [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffff0a195b26:696a4d75:5343c565:8 in state RUN

      2014-04-08 17:46:47,161 WARN  [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012095: Abort of action id 0:ffff0a195b26:696a4d75:5343c565:8 invoked while multiple threads active within it.

      2014-04-08 17:46:47,161 WARN  [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012108: CheckedAction::check - atomic action 0:ffff0a195b26:696a4d75:5343c565:8 aborting with 1 threads active!

      2014-04-08 17:46:47,309 WARN  [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012121: TransactionReaper::doCancellations worker Thread[Transaction Reaper Worker 0,5,main] successfully canceled TX 0:ffff0a195b26:696a4d75:5343c565:8

       

      However, the whole transaction only throws error (javax.resource.ResourceException: IJ000460: Error checking for a transaction) when it tries to commit, at the end of the transaction.


      As such, we return the error much later than when the timeout happens. We would want to return error immediately when the timeout happens.


      How should this be done?