Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-5189

Txn-Manager arjuna commits data after timeout in long transactions




      We encountered the following situation: Within an ejb using hibernate (and it's JTA transaction manager) we execute a long transaction. When the transaction run-time exceeds the arjuna timeout, the container outputs the following message:
      > Abort of action id -5ea551d8:b05:47a18b1f:2f invoked while multiple threads active within it
      > CheckedAction::check - atomic action -5ea551d8:b05:47a18b1f:2f aborting with 1 threads active!
      After this, all following operations are directly committed to the database!
      So, basically we have two problems:

      • The timeout of the txn-manager triggers, even while the current database transaction is in continuous heavy use (numerous inserts/selects per second)
      • Instead of aborting with an exception at once, the transaction manager happily carries on accepting data
      • The data sent to the database before the timeout is discard
      • The data sent to the database after the timeout is committed to the database. This results in inconsistent data within the database
      • After the ejb-method commits an exception is thrown, leaving the database in an inconsistent state.
        A workaround is of course to increase the transaction manager timeout, but this defeats the purpose of the timeout. Furthermore, the duration of a transaction cannot always be estimated.

        Gliffy Diagrams


            Issue Links



                • Assignee:
                  adrian.brock Adrian Brock
                  r.schmitz Rüdiger Schmitz
                • Votes:
                  0 Vote for this issue
                  1 Start watching this issue


                  • Created: