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

4
我有以下配置。
OS Sparc 11
OCSG 5.1
Environment : Cluster (Admin+MS), (MS)
Weblogic : 11g

问题:
我将旧环境(ocsg 5.1 windows)中正在运行的现有ear部署到我的新环境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个回答

9

尝试增加域的JTA超时时间:打开Weblogic控制台,进入域、服务、JTA;将“超时秒数”从30更改为3000。在config.xml中,应该显示为:

<JTA
    TimeoutSeconds="300"

/>  

1

对于我来说,另一个解决方案是在我的方法上注释@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED),因为我无法更改Weblogic的全局配置。

在此方法内部,您的JPA方法调用仍将正常工作(已测试),并且值仍将持久化到数据库中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接