Java 如何解决WAS 7中的此超时异常
我的java程序中出现了超时异常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
[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,有很多事情可能需要五分钟以上的时间。如果是这种情况,您可以增加事务超时值 以下是如何更改这些值:
这些步骤取自IBM信息中心实际上我在getLetter()方法中使用了一个select查询…这是一个hibernate查询…注意getLetter()中的内容…听起来像是一个简单的查询,我会检查查询是否真的需要那么长的时间,或者数据库连接是否用尽,超时是因为等待连接。这没有帮助,我无法从这里确定是否需要以及为什么需要很长时间。您需要监视执行查询所需的时间以及数据库的可用连接数。您是否有可能找到这个问题?