Spo*_*ork 5 singleton startup weblogic12c jakarta-ee
我们已经将我们的环境升级为WLS12.2.1.2.0来自WLS12.1.1.0并遇到@Startup了@Singletonbean方法中的事务问题。
所述 bean 部署在 EAR 内,该 EAR 将消息发布到事务下的 JMS 队列。这在目标服务器运行时有效,但在容器启动期间失败:
Timeout during commit processing
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:281)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:301)
at weblogic.transaction.internal.CoordinatorImpl_12212_WLStub.commit(Unknown Source)
at weblogic.transaction.internal.TransactionImpl$1.run(TransactionImpl.java:378)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.transaction.internal.SecureAction.runAction(SecureAction.java:71)
at weblogic.transaction.internal.PlatformHelperImpl.runAction(PlatformHelperImpl.java:1493)
at weblogic.transaction.internal.TransactionImpl.commit(TransactionImpl.java:375)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:270)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:257)
at weblogic.ejb.container.manager.BaseEJBManager.handleLifecycleCallbackTx(BaseEJBManager.java:412)
at weblogic.ejb.container.manager.SingletonSessionManager.constructAndInitBean(SingletonSessionManager.java:301)
...
Caused by: javax.transaction.SystemException: Timeout during commit processing
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:340)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:257)
at weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:99)
at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:645)
at weblogic.rmi.internal.BasicServerRef$2.run(BasicServerRef.java:534)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:531)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:138)
... 7 more
Run Code Online (Sandbox Code Playgroud)
我们已经能够通过一个简单的示例设置重新创建这个问题:一个简单的@Singletonbean,它的@Startup方法尝试使用事务。然而,规范似乎概述了启动期间的事务行为应该是可能的,一旦服务器完成启动,事务就会完全提交。
是什么导致了这个问题WLS12.2.1.2.0以及解决它的首选方法是什么?