我正在使用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 omitted Caused 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
答案 0 :(得分:1)
您必须查找在此之前发生的其他错误(可能是吞下的异常,因为您说没有其他错误)。如果当前trx已被标记为回滚,并且您仍然在数据库上执行操作,则会发生EJBTransactionRolledbackException。
答案 1 :(得分:1)
也发生在我身上。 似乎问题不是编码问题,而是服务器资源。
我增加了http线程池大小 这对我来说是5最大值,我把它改为10
似乎解决了这个问题。
此处还有一些关于此错误的说明: http://pcjuzeren.blogspot.co.il/2008/12/clients-transaction-aborted.html