- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我有一个独立的 Thread 应用程序。这是一个等待消息的监听器,当消息到达时执行一些操作,其中我必须将消息保存在数据库中。但我遇到了问题,因为如果我运行应用程序并“手动发送消息”,一切都会正常工作,
我有以下php代码: sleep(65); $query = "UPDATE database.table SET XXXXXXX = XXXXXXX - ".$YYYYYY." WHERE
我正在开发一个业余爱好应用程序。它在主布局中使用 webview。单击 webview 内的链接会使用户保持在 webview 内。启动后一切正常,但仍在应用程序内。但是,在手机休眠一段时间后,我重新
我目前运行的应用程序需要最大堆大小为 16GB。 目前我使用以下标志来处理垃圾回收。 -XX\:+UseParNewGC, -XX\:+UseConcMarkSweepGC, -XX:CMSIniti
$ uname -a Darwin Wheelie-Cyberman 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011
在 while 循环仍在休眠时退出它的最简单方法是什么?是否有某种函数可以在 sleep 时检测某个值是否为真? 或者我是否在循环中设置一个小 sleep 并检查如果不再睡一会儿就退出?如果可以,我该
我正在 Ubunu 的 Jetty 6 上运行 Java Web 服务器,用于基于反向 ajax 的 Web。而且我在向浏览器重新发送数据的线程滞后方面遇到了严重的问题。很多时候,一些线程开始 hib
当我运行长时间操作时,我遇到来自 IIS 的请求超时。我的 ASP.NET 应用程序正在后台处理数据,但处理的记录数量很大,因此操作需要很长时间。 但是,我认为 IIS 使 session 超时。这是
我不确定从哪里开始解决这个问题,但如果我有一个 AJAX 网络应用程序向服务器发送请求并在数据库(在我的例子中是 postgresql)上运行长查询,有没有办法停止或如果仍在运行时用户刷新页面或关闭
我是一名优秀的程序员,十分优秀!