weblogic.transaction.internal.TimedOutException:事务在32秒后超时

时间:2015-03-31 10:16:38

标签: java ejb-3.0 weblogic11g

我有以下配置

OS Sparc 11
OCSG 5.1
Environment : Cluster (Admin+MS), (MS)
Weblogic : 11g

问题:

我已经将旧环境(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

我在我的控制台上看到每个东西都处理得很好,但是没有响应被发送回客户端,导致连接超时问题。

2 个答案:

答案 0 :(得分:5)

尝试增加域名的JTA超时:打开weblogic控制台,转到域名,服务,JTA;将'Timeout Seconds'从30改为3000。 在config.xml中,这应显示为:

<JTA
    TimeoutSeconds="300"

/>  

答案 1 :(得分:0)

另一个对我有用的解决方案,因为我无法更改Weblogic的全局配置,所以用@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)注释了我的方法。 您的JPA方法调用仍将在此方法内(经过测试)运行,并且值仍将持久保存到数据库中。