gpt4 book ai didi

java - EJBTransactionRolledbackException 偶尔会发生在@Asynchronous Function 上

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

我正在使用 Java 1.6.0_23 和 Glassfish 3.1.1。我有两个 Singleton EJB。一种是使用 TimerService 来触发 @Timeout 函数。在@Timeout 期间,在另一个Singleton EJB 中调用@Asynchronous 函数。它在 95% 的时间内都可以正常工作,没有任何错误。但是在调用 @Asynchronous 函数的另外 5% 的时间里,我收到以下错误,但没有证据表明它甚至启动了 @Asynchronous 函数。没有记录其他错误详细信息。

有什么想法吗?

PS:我尝试将 Glassfish 中的最大 EJB 数量从 32 增加到 64。没有变化。

java.util.concurrent.ExecutionException: javax.ejb.EJBTransactionRolledbackException        at com.sun.ejb.containers.EjbAsyncTask.call(EjbAsyncTask.java:132) ~[ejb-container.jar:3.1.1]        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) ~[na:1.6.0_23]        at java.util.concurrent.FutureTask.run(FutureTask.java:138) ~[na:1.6.0_23]        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) ~[na:1.6.0_23]        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) ~[na:1.6.0_23]        at java.lang.Thread.run(Thread.java:662) ~[na:1.6.0_23]Caused by: javax.ejb.EJBTransactionRolledbackException: null        at com.sun.ejb.containers.BaseContainer.mapLocal3xException(BaseContainer.java:2305) ~[ejb-container.jar:3.1.1]        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2088) ~[ejb-container.jar:3.1.1]        at com.sun.ejb.containers.EjbAsyncTask.call(EjbAsyncTask.java:114) ~[ejb-container.jar:3.1.1]        ... 5 common frames omittedCaused by: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted        at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:4699) ~[ejb-container.jar:3.1.1]        at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:4577) ~[ejb-container.jar:3.1.1]        at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1910) ~[ejb-container.jar:3.1.1]        at com.sun.ejb.containers.EjbAsyncTask.call(EjbAsyncTask.java:99) ~[ejb-container.jar:3.1.1]        ... 5 common frames omitted

最佳答案

您必须查找在此错误之前发生的其他错误(可能是被吞噬的异常,因为您说没有其他错误)。 EJBTransactionRolledbackException 如果当前 trx 已标记为回滚,并且您仍在 DB 上执行操作,则会发生 EJBTransactionRolledbackException。

关于java - EJBTransactionRolledbackException 偶尔会发生在@Asynchronous Function 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7347177/

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