gpt4 book ai didi

java - Arjuna JTA 事务意外回滚

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:01:22 26 4
gpt4 key购买 nike

当我检查 JBoss 日志时,我看到了很多这样的错误

2012-03-29 12:01:27,358 WARN  @ [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] Could not find new XAResource to use for recovering non-serializable XAResource < 131075, 32, 30, 1--53e2af7c:eff6:4ec11bf7:2e1da4-53e2af7c:eff6:4ec11bf7:2e263d                                                                   >
2012-03-29 12:01:27,398 WARN @ [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] Could not find new XAResource to use for recovering non-serializable XAResource < 131075, 31, 29, 1--53e2af7c:d397:4e8c1b0e:25b6d-53e2af7c:d397:4e8c1b0e:29d09 >

然后,当我尝试发送 JMS 消息时,我看到了这个错误:

2012-03-29 12:02:43,778 WARN  @ [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.resources.arjunacore.opcerror] [com.arjuna.ats.internal.jta.resources.arjunacore.opcerror] XAResourceRecord.commit_one_phase caught: java.lang.IllegalMonitorStateException
2012-03-29 12:02:43,778 WARN @ [org.springframework.jms.listener.DefaultMessageListenerContainer] Setup of JMS message listener invoker failed for destination 'queue/request' - trying to recover. Cause: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state

我怀疑回滚是先前错误的结果。我对吗 ?什么会导致事务保持这样的中止状态?

环顾四周,我发现了这篇文章:What causes Arjuna 1603 (Could not find new XAResource to use for recovering non-serializable XAResource).我知道已经保留了一些交易日志,但这并没有解释如何解决我现在遇到的问题。

最佳答案

一般来说,从托管对象(用 JBoss 代理包装的注入(inject)的东西)抛出的每个 RuntimeException 以及未标记为 @ApplicationException(rollback = false) 的每个 RuntimeException 都会导致事务回滚。

这些情况通常很容易在日志文件中看到。

另一方面,超时有点棘手。您将在日志文件中看到类似这样的内容:“在多个线程处于 Activity 状态时调用中止操作 ID -3f57fd2d:e48e:4cf8de0f:bc。”

其他调用将继续运行,只有当它们尝试访问数据库连接时才会失败,收到“事务被标记为回滚”异常。

关于java - Arjuna JTA 事务意外回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com