java - IBM WAS 5.1/Tread 转储分析 : Servlet. Engine.Transports 卡在 java.net.SocketInputStream.socketRead0 上

标签 java ibm-was java-threads thread-dump

我正在 Solaris 10 机器上运行 WAS 5.1 和 Sun 1.4.2 Java。尝试找出应用程序变得无响应的原因。

我在线程转储中看到大多数名为 Servlet.Engine.Transport[...] 的线程仍停留在该堆栈跟踪上:

"Servlet.Engine.Transports : 10388" daemon prio=5 tid=0x00304620 nid=0x322f runnable [1b3cf000..1b3cfc28]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at com.ibm.ws.io.Stream.read(Stream.java:17)
    at com.ibm.ws.io.ReadStream.readBuffer(ReadStream.java:418)
    at com.ibm.ws.io.ReadStream.read(ReadStream.java:110)
    at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:454)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:936)

我想我应该将它们视为空闲线程(保持 Activity 连接),但我找不到太多信息来证实该理论......?

最佳答案

查看“最新”5.1 源代码,行号确实暗示这是一次 keepalive 读取,而不是读取请求内的数据。

关于java - IBM WAS 5.1/Tread 转储分析 : Servlet. Engine.Transports 卡在 java.net.SocketInputStream.socketRead0 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36187305/

相关文章:

java - JooQ 的 Loader<?> 的 .commit*() 或 .batch*() 方法在 TransactionalRunnable 中是否重要?

java - 第一次尝试后发送 SOAP NullPointerException 和 "Depth limit reached"

用于维护海量数据的 Java 缓存框架

java - java中如何仅在特定条件下唤醒 hibernate 线程?

java - 线程、对象状态

Java JPanel 不可见

java - Coldfusion 运行时源代码

websphere-8 - list 当 IBM WebSphere Application Server 运行时

java - 为什么此代码抛出非法状态监视器异常

java - 并行编程 2 个线程运行共享变量