Hello, I'm operating some services under this environment. 1. server OS : RHEL 6.x JVM : 1.8.0_x WEB : httpd 2.2.24 WAS : tomcat-8.0.44(tomcat-native1.2.14) 2. server OS : RHEL 6.x JVM : 1.8.0_x WEB : httpd 2.2.24 WAS : tomcat-7.0.75(tomcat-native1.2.14)
<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="9443" URIEncoding="UTF-8" acceptCount="200" acceptorThreadCount="2" maxThreads="300" minSpareThreads="50" *connectionTimeout="15000*"/> I can see a RUNNABLE thread in my tomcat8.0.44 server that waits keep alive timeout(connectionTimeout) status. *====only tomcat8 ===ajp-apr-8009-exec-8 (RUNNABLE)* - 42 <http://was1/simple/threaddump.jsp?tid=42> org.apache.tomcat.jni.Socket.recvbb(Native Method) org.apache.coyote.ajp.AjpAprProcessor.readSocket(AjpAprProcessor.java:256) org.apache.coyote.ajp.AjpAprProcessor.read(AjpAprProcessor.java:197) org.apache.coyote.ajp.AbstractAjpProcessor.readMessage(AbstractAjpProcessor.java:1091) org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:804) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2458) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745) but I can't see a RUNNABLE thread in my tomcat7.0.75 server that server service a reguest and exactly change to TIMED_WATING status . why differnt beetween tomcat7 and tomcat8 ?? *ajp-apr-8009-exec-5 (TIMED_WAITING)* - 39 <http://was1/simple/threaddump.jsp?tid=39> sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078) java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:85) org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:31) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1066) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745)