gpt4 book ai didi

java - 如何增加线程超时以允许长时间运行的线程完成而不会在 websphere for z/os 上异常终止

转载 作者:行者123 更新时间:2023-11-30 09:14:13 27 4
gpt4 key购买 nike

我在 zos 大型机上的 WebSphere 7 上部署了一个 JEE 应用程序。其中一个页面对数据库进行了大量处理,请求可能需要长达 6 分钟才能完成并做出响应。我面临的问题是服务器将其检测为超时(线程挂起),然后继续异常终止服务并重新启动服务器。在我的 Windows 测试环境中,我收到一条线程挂起消息,但应用程序服务器继续工作。数据库连接工作得很好。所以它不会因为数据库需要很长时间才能响应而超时。我试过使用 WebSphere 变量但没有成功。有没有人遇到过类似的问题?有谁知道如何解决这个问题。非常感谢

编辑:有关该问题的更多信息。
线程工作几分钟后,我在控制台上收到以下消息

  Trace: 2013/12/16 14:56:57.849 01 t=8C6E88 c=UNK key=P8 (13007002)             
ThreadId: 0000006d
FunctionName: com.ibm.ws390.interrupt.InterruptibleThreadObject
SourceId: com.ibm.ws390.interrupt.InterruptibleThreadObject
Category: INFO
ExtendedMessage: BBOJ0113I: The Interruptible Thread Infrastructure is attempting to advance work running under request fffc77cb
Trace: 2013/12/16 14:56:57.850 01 t=8C6E88 c=UNK key=P8 (00000011)
Description: Log Java Message
Message: BBOJ0113I: The Interruptible Thread Infrastructure is attempting to advance work running under request fffc77cb
Trace: 2013/12/16 14:56:57.871 01 t=8C7AD0 c=UNK key=P8 (13007002)
ThreadId: 0000005a
FunctionName: com.ibm.ejs.j2c.ConnectionEventListener
SourceId: com.ibm.ejs.j2c.ConnectionEventListener
Category: WARNING
ExtendedMessage: BBOO0221W: J2CA0206W: A connection error occurred. To help determine the problem, enable the Diagnose Connection Usage option on the Connection Factory or Data Source.
Trace: 2013/12/16 14:56:57.872 01 t=8C7AD0 c=UNK key=P8 (00000011)
Description: Log Java Message
Message: BBOO0221W: J2CA0206W: A connection error occurred. To help determine the problem, enable the Diagnose Connection Usage option on the Connection Factory or Data Source.
ption on the Connection Factory or Data Source.
Trace: 2013/12/16 14:56:57.873 01 t=8C7AD0 c=UNK key=P8 (13007002)
ThreadId: 0000005a
FunctionName: com.ibm.ejs.j2c.ConnectionEventListener
SourceId: com.ibm.ejs.j2c.ConnectionEventListener
Category: AUDIT
ExtendedMessage: BBOO0222I: J2CA0056I: The Connection Manager received a fatal connection error from the Resource Adapter for resource jdbc/mofaz19. The exception is: com.ibm.db2.jcc.b.un: A communication error occurred during operations on the connection's underlying socket, socket input stream, or socket output stream. Error location: Reply.fill(). Message: Socket closed ERRORCODE=-4499, SQLSTATE=08001:java.net.SocketException: Socket closed

几秒钟后,服务器异常终止并重新启动。最后留言如下

Trace: 2013/12/16 11:48:49.543 01 t=8C9BF8 c=UNK key=P8 (13007002)              
ThreadId: 00000363
FunctionName: com.ibm.ws390.orb.CommonBridge
SourceId: com.ibm.ws390.orb.CommonBridge
Category: SEVERE
ExtendedMessage: BBOJ0117I: JAVA THREAD STACK TRACEBACK FOR THREAD WebSphere:ORB.thread.pool t=008c4950:
Thread Hang Recovery--thread could not be encouraged to complete
Traceback for thread WebSphere:ORB.thread.pool t=008c4950:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:141)
com.ibm.db2.jcc.t4.ab.b(ab.java:195)
com.ibm.db2.jcc.t4.ab.c(ab.java:243)
com.ibm.db2.jcc.t4.ab.c(ab.java:354)
com.ibm.db2.jcc.t4.ab.v(ab.java:1139)
com.ibm.db2.jcc.t4.bb.c(bb.java:167)
com.ibm.db2.jcc.t4.r.c(r.java:42)
com.ibm.db2.jcc.t4.b.Cb(b.java:2514)
com.ibm.db2.jcc.b.jb.s(jb.java:1136)
com.ibm.db2.jcc.b.jb.q(jb.java:1097)
com.ibm.db2.jcc.t4.b.q(b.java:4726)
com.ibm.db2.jcc.b.jb.p(jb.java:1072)
com.ibm.db2.jcc.b.jb.rollback(jb.java:1060)
com.ibm.db2.jcc.b.we.rollback(we.java:176)
com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.rollback(WSJdbcConnection.java:331
.........................
.........................
myCompany.MyServlet.doPost(MyServlet.java:59)
javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1583)
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:870)
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475)
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapper.java:91)
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:863)
com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:182)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
com.ibm.ws390.channel.xmem.XMemConnLink.ready(XMemConnLink.java:844)
com.ibm.ws390.channel.xmem.XMemInboundChannel.handleRequest(XMemInboundChannel.java:340)
com.ibm.ws390.xmem.XMemSRBridgeImpl.httpinvoke(XMemSRBridgeImpl.java:104)
com.ibm.ws390.xmem.XMemSRCppUtilities.httpinvoke(XMemSRCppUtilities.java:74)
com.ibm.ws390.orb.ServerRegionBridge.httpinvoke(ServerRegionBridge.java:215)
com.ibm.ws390.orb.ORBEJSBridge.httpinvoke(ORBEJSBridge.java:281)
sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:101)
java.lang.reflect.Method.invoke(Method.java:600)
com.ibm.ws390.orb.parameters.HTTPInvoke.HTTPInvokeParmSetter(HTTPInvoke.java:101)
com.ibm.ws390.orb.CommonBridge.nativeRunApplicationThread(Native Method)
com.ibm.ws390.orb.CommonBridge.runApplicationThread(CommonBridge.java:463)
com.ibm.ws.util.ThreadPool$ZOSWorker.run(ThreadPool.java:1750)

最佳答案

有不同的超时设置 - 在数据库上,在网络 session 上,在 http 服务器上等等。

这是超时设置之一 http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.tspm.doc_7.1%2Finstall%2Ftask%2FConfigureTransactionLifetimeTimeout.html但还有很多其他的。

常见的建议是设计您的应用程序而无需等待 http 上的同步响应。您可以使用MDB、MQ、WorkManager、TaskScheduler,任何你喜欢的。在前端 AJAX 调用上。

关于java - 如何增加线程超时以允许长时间运行的线程完成而不会在 websphere for z/os 上异常终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20609244/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com