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.
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.