最近我们遇到了JBoss AS的问题,我们无法确定根本原因。
我们的jboss服务器前面有一个apache负载均衡器,它使用端口8009上的AJP协议向jboss发送请求。
最近我们遇到了一个问题,即工作线程卡在系统中(我们通过jboss.web上的jmx-console,以及发出线程转储时看到它)。
我们目前为AJP连接设置了700个maxThreads,它最多需要3天才能达到最大值。 那时我们重新启动jboss服务来解决它。
这些线程在线程转储中如下所示:
**Thread: ajp-0.0.0.0-8009-4 : priority:5, demon:true, threadId:90, threadState:RUNNABLE**
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:1036)
org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:1115)
org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:383)
org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:384)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:662)
**Thread: ajp-0.0.0.0-8009-5 : priority:5, demon:true, threadId:91, threadState:RUNNABLE**
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:1036)
org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:1115)
org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:383)
org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:384)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:662)
**Thread: ajp-0.0.0.0-8009-6 : priority:5, demon:true, threadId:92, threadState:RUNNABLE**
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:1036)
org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:1115)
org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:383)
org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:384)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:662)
**Thread: ajp-0.0.0.0-8009-7 : priority:5, demon:true, threadId:93, threadState:WAITING**
- waiting on <0x42ee5ce8> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:442)
java.lang.Thread.run(Thread.java:662)
等...
在jboss上运行的Web应用程序使用Jersey实现,使用application / octet-stream(将InputStream作为实体添加到Jersey resposne)向客户端返回可用文件列表或文件本身。
提前致谢, MENY