Question

I'm working with an application that access an oracle database. Sometimes objects (rows) on that database are locked by process outside my application.

The problem I'm having is that when the transaction reaches the transaction timeout, arjuna coordinator tries to rollback the transaction but don't succeed in it

The stack trace is the following

09:15:42,494 WARN  [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsF
actory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the b
ean container
09:16:12,287 WARN  [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.Transactio
nReaper_18] - TransactionReaper::check timeout for TX -7ffd9392:a9b:507ff0a4:97
in state  RUN
09:16:12,292 WARN  [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicActio
n_58] - Abort of action id -7ffd9392:a9b:507ff0a4:97 invoked while multiple thre
ads active within it.
09:16:12,294 WARN  [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.CheckedAct
ion_2] - CheckedAction::check - atomic action -7ffd9392:a9b:507ff0a4:97 aborting
 with 1 threads active!
09:16:12,789 WARN  [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.Transactio
nReaper_18] - TransactionReaper::check timeout for TX -7ffd9392:a9b:507ff0a4:97
in state  CANCEL
09:16:13,291 WARN  [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.Transactio
nReaper_18] - TransactionReaper::check timeout for TX -7ffd9392:a9b:507ff0a4:97
in state  CANCEL_INTERRUPTED
09:16:13,293 WARN  [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.Transactio
nReaper_6] - TransactionReaper::check worker Thread[Thread-11,5,jboss] not respo
nding to interrupt when cancelling TX -7ffd9392:a9b:507ff0a4:97 -- worker marked
 as zombie and TX scheduled for mark-as-rollback
09:16:13,297 WARN  [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.Transactio
nReaper_11] - TransactionReaper::check failed to mark TX -7ffd9392:a9b:507ff0a4:
97  as rollback only

I'm using jboss-5.1.0.GA, Hibernate 3.3.1.GA and Oracle 9.2.08.

I have done several tests and while the row is locked the rollback don't work. It doesn't matter the time that have passed since the transaction timeout. If i unlock the row after the transaction timeout, the rollback starts at that moment.

I have done some research on the web but didn't find exactly the same error.

Thanks.

Diego.

Was it helpful?

Solution

Finally I found the answer (here on stackoverflow). It doesn't solve my problem (because what is happening is the expected behaviour), but explains what is happening.

Transaction TimeOut EJB impact on the thread

OTHER TIPS

Here I found how to enable arjuna logging on jboss:

http://germanogiudici.wordpress.com/2011/09/02/how-to-log-transaction-informations-in-jboss-4-2-3-ga/

I hope this helps to get more info on what is happening.

What I found till today, is that the workerThread that holds the transaction doesn't finish on cancel() method. But whith my current log level I can't see what is happening.

I will post more news after debug.

Note: the xml configuration for Transactions in jboss 5.1 is jbossts-properties.xml not jbossjta-properties.xml.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top