Java 如何解决WAS 7中的此超时异常

Java 如何解决WAS 7中的此超时异常,java,jakarta-ee,websphere-7,corba,timeoutexception,Java,Jakarta Ee,Websphere 7,Corba,Timeoutexception,我的java程序中出现了超时异常 [4/10/14 6:27:02:859 CDT] 00000004 TimeoutManage I WTRN0006W: Transaction 000001454B5F86E80000000100007366C376DBAB11CE46C9F72BF0EF6B270F9458C6856F000001454B5F86E80000000100007366C376DBAB11CE46C9F72BF0EF6B270F9458C6856F00000001 has

我的java程序中出现了超时异常

 [4/10/14 6:27:02:859 CDT] 00000004 TimeoutManage I   WTRN0006W: Transaction 000001454B5F86E80000000100007366C376DBAB11CE46C9F72BF0EF6B270F9458C6856F000001454B5F86E80000000100007366C376DBAB11CE46C9F72BF0EF6B270F9458C6856F00000001 has timed out after 300 seconds.
    [4/10/14 6:27:02:862 CDT] 00000004 TimeoutManage I   WTRN0124I: When the timeout occurred the thread with which the transaction is, or was most recently, associated was Thread[ORB.thread.pool : 3,5,main]. The stack trace of this thread when the timeout occurred was: 
        java.lang.Object.wait(Native Method)
        java.lang.Object.wait(Object.java:196)
        com.ibm.rmi.iiop.OutCallDesc.waitForResponse(OutCallDesc.java:58)
        com.ibm.rmi.iiop.Connection.getCallStream(Connection.java:2341)
        com.ibm.rmi.iiop.Connection.send(Connection.java:2295)
        com.ibm.rmi.iiop.ClientRequestImpl.invoke(ClientRequestImpl.java:338)
        com.ibm.rmi.corba.ClientDelegate.invoke(ClientDelegate.java:424)
        com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:1122)
        com.ibm.rmi.corba.ClientDelegate.invoke(ClientDelegate.java:708)
        com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:1152)
        org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:484)
        com.facade._ARFacade_Stub.getLetter(_ARFacade_Stub.java:1109)
        com.delegate.ARDelegate.getLetter(ARDelegate.java:730)
        com.impl.ARImpl.invokeAR(ARImpl.java:360)
我观察到我必须增加交易的期限。但是我不知道我的假设是否正确

您能指导我对此超时异常采取纠正措施吗


或者我是否需要查看错误日志中提到的_ARFacade_Stub.java、AreceibleDelegate.java…

我们很难确定您超时的确切原因。您需要查看事务中所做的事情,看看是需要很长时间还是太长时间。如果时间太长,您需要了解哪里出了问题,但鉴于上述描述,我们很难帮助您。特别要注意的是,如果您正在耗尽资源,而超时的线程正在等待该资源,但很长一段时间或永远都无法获得该资源

也可能是这样,无论你做什么都需要很长时间,这是正常的。根据您的标记,您正在使用WebSpherePortal,有很多事情可能需要五分钟以上的时间。如果是这种情况,您可以增加事务超时值

以下是如何更改这些值:

  • 登录到管理控制台
  • 导航到事务服务面板
  • WebSphereApplicationServer7.0:单击服务器>服务器类型>WebSphereApplicationServers>服务器名称>容器服务>事务服务
  • 增加总事务生存期超时。默认值为120
  • 增加最大事务超时。默认值为300秒
  • 停止并重新启动WebSphereApplicationServer

  • 这些步骤取自IBM信息中心

    实际上我在getLetter()方法中使用了一个select查询…这是一个hibernate查询…注意getLetter()中的内容…听起来像是一个简单的查询,我会检查查询是否真的需要那么长的时间,或者数据库连接是否用尽,超时是因为等待连接。这没有帮助,我无法从这里确定是否需要以及为什么需要很长时间。您需要监视执行查询所需的时间以及数据库的可用连接数。您是否有可能找到这个问题?