Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是;“终止”;Atomikos日志上UserTransaction平均值的状态?_Java_Transactions_Jta_Atomikos - Fatal编程技术网

Java 什么是;“终止”;Atomikos日志上UserTransaction平均值的状态?

Java 什么是;“终止”;Atomikos日志上UserTransaction平均值的状态?,java,transactions,jta,atomikos,Java,Transactions,Jta,Atomikos,我在J2SE应用程序中使用Atomikos essential transactions作为我的TM。 我有以下代码: if (userTransaction.getStatus()== Status.STATUS_ACTIVE){ userTransaction.commit(); } 然后我在日志中看到以下异常: java.lang.IllegalStateException: TM_UNIQUE_NAME0003000006不再处于活动状态,但 在状态终止时 com.atomikos.i


我在J2SE应用程序中使用Atomikos essential transactions作为我的TM。
我有以下代码:

if (userTransaction.getStatus()== Status.STATUS_ACTIVE){
userTransaction.commit();
}
然后我在日志中看到以下异常:

java.lang.IllegalStateException: TM_UNIQUE_NAME0003000006不再处于活动状态,但 在状态终止时 com.atomikos.icatch.imp.CoordinatorImp.addParticipant(CoordinatorImp.java:615) 在 com.atomikos.icatch.imp.TransactionStateHandler.addParticipant(TransactionStateHandler.java:133) 在 com.atomikos.icatch.imp.TransactionStateHandler.committed(TransactionStateHandler.java:347) 在 com.atomikos.icatch.imp.TransactionStateHandler.commit(TransactionStateHandler.java:298) 在 com.atomikos.icatch.imp.CompositeTransactionImp.doCommit(CompositeTransactionImp.java:319) 在 com.atomikos.icatch.imp.compositerminatorimp.commit(compositerminatorimp.java:79) 在 com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:236) 在 com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:496) 在 com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:129) 在 com.mycompany.module.view.myOtherClass.transformMpr(myOtherClass.java:57) 在 notifyObservators(未知 来源)在 mycompany.module.model.myClass.notifyObservators(myClass.java:291) 在 com.mycompany.module.model.myClass.MultiStateEscalation.run(myClass.java:91) 在 java.util.concurrent.Executors$RunnableAdapter.call(未知 来源)在 java.util.concurrent.FutureTask$Sync.innerRun(未知 来源)在 java.util.concurrent.FutureTask.run(未知 来源)在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(未知 来源)在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(未知 来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(未知 来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知 来源)在 java.lang.Thread.run(未知源)

其中
myOtherClass
中的第57行是我在上述代码中调用
commit()
的行。userTransaction是
userTransaction
的一个实例
我不明白的是,终止意味着什么?我在Atomikos发行版中找不到这些类(这很奇怪,因为它们是开源的,我另外在所有源代码上对字符串进行了文本搜索),并且terminated不是
javax.transaction.Status中定义的状态之一

有人对此不屑一顾吗?如何检查我持有的userTransaction是否对提交有效

谢谢,

Ittai

终止意味着提交或回滚。在您的情况下,很可能是超时/回滚

如果可以,请尝试增加超时时间

通常,检查事务状态并不保证下一行代码可以提交。提交是由于超时和资源问题而可能失败的应用程序请求;否则就不需要两阶段提交:-)


最好的

谢谢。如果可以的话,我有两个问题:1)假设这是一个超时(并且在Atomikos论坛上根据您的建议增加超时后,它确实消失了),那么在发生
if
之前,TX活动的Xms是吗?2) 为什么Atomikos输出的状态与JTA状态表不一致?在我看来,这可能更有帮助,也更容易解释。再次感谢您的投入。