java weblogic.transaction.internal.TimedOutException:事务在 32 秒后超时
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/29366177/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
weblogic.transaction.internal.TimedOutException: Transaction timed out after 32 seconds
提问by Muhammad Maroof
I have following configuration
我有以下配置
OS Sparc 11
OCSG 5.1
Environment : Cluster (Admin+MS), (MS)
Weblogic : 11g
Problem:
问题:
I have deployed existing running ear from old environment (ocsg 5.1 windows ) to my new environment sparc 11 ocsg 5.1. I am facing following issue
我已将旧环境(ocsg 5.1 windows)中的现有运行耳朵部署到我的新环境 sparc 11 ocsg 5.1。我面临以下问题
javax.ejb.EJBException: Transaction Rolledback.: weblogic.transaction.internal.TimedOutException: Transaction timed out after 32 seconds
BEA1-0009181AB1D7057B1ADE
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1788)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1676) at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1988)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1586)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
nested exception is: weblogic.transaction.internal.TimedOutException: Transaction timed out after 32 seconds
BEA1-0009181AB1D7057B1ADE
at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:156)
at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:595)
at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:455)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:52)
at com.warid.es.vasactivation.VasManagerServer_82gq0g_VasManagerServerLocalImpl.getBalanceDate(Unknown Source)
Truncated. see log file for complete stacktrace
Caused By: weblogic.transaction.internal.TimedOutException: Transaction timed out after 32 seconds
BEA1-0009181AB1D7057B1ADE
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1788)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1676)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1988)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1586)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
Truncated. see log file for complete stacktrace
I have seen on my console every thing is processed fine but no response is sent back to client which result in connection timeout issue.
我在我的控制台上看到每件事都处理得很好,但没有响应发送回客户端,导致连接超时问题。
回答by Pierluigi Vernetto
Try increasing the domain's JTA Timeout : open the weblogic console, go to domain, services, JTA ; Change 'Timeout Seconds' from 30 to 3000. In config.xml this should show as:
尝试增加域的 JTA 超时:打开 weblogic 控制台,转到域、服务、JTA;将“超时秒数”从 30 更改为 3000。在 config.xml 中,这应显示为:
<JTA
TimeoutSeconds="300"
/>
回答by Najeeb Arif
Another solution which worked for me, coz i could not change the global configuration for Weblogic, was to annotate my method with @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
.
Your JPA method calls will still work inside this method(tested) and values will still get persisted into the DB.
另一个对我有用的解决方案,因为我无法更改 Weblogic 的全局配置,是用@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
. 您的 JPA 方法调用仍将在此方法中工作(已测试),并且值仍将保留到数据库中。