JBoss arjuna TransactionReaper不回滚超时。

时间:2022-11-16 16:26:25

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

我正在使用一个访问oracle数据库的应用程序。有时,数据库上的对象(行)被应用程序之外的进程锁定。

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

我遇到的问题是当事务到达事务超时时,arjuna协调器试图回滚事务,但是没有成功。

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.

我用jboss-5.1.0。GA,Hibernate 3.3.1。GA和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.

迭戈。

2 个解决方案

#1


4  

Finally I found the answer (here on *). 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

事务超时EJB对线程的影响。

#2


0  

Here I found how to enable arjuna logging on jboss:

在这里,我发现了如何启用arjuna登录jboss:

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

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.

直到今天我才发现,持有事务的workerThread并没有完成cancel()方法。但是我现在的日志水平,我看不出正在发生什么。

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.

注意:jboss 5.1中的事务的xml配置是jbossts-properties。xml不是jbossjta-properties.xml。

#1


4  

Finally I found the answer (here on *). 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

事务超时EJB对线程的影响。

#2


0  

Here I found how to enable arjuna logging on jboss:

在这里,我发现了如何启用arjuna登录jboss:

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

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.

直到今天我才发现,持有事务的workerThread并没有完成cancel()方法。但是我现在的日志水平,我看不出正在发生什么。

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.

注意:jboss 5.1中的事务的xml配置是jbossts-properties。xml不是jbossjta-properties.xml。