Hello, I have a tomcat 5.5 server hanging in production mode. It seems we have threads that are never released and stay locked as shown in the extract below.
I'm looking for help about tools or methods to identify what locks our threads. Our application log is ok, we tried to set it in trace mode but it doesn't show more clue. Olivier Thread dump extract : "http-8180-Processor300" daemon prio=10 tid=0x00002aaaf4eb4400 nid=0x1574 in Object.wait() [0x000000005d7fe000..0x000000005d7fedc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002aaabbd271c0> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Object.wait(Object.java:485) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656) - locked <0x00002aaabbd271c0> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Thread.run(Thread.java:619) "http-8180-Processor299" daemon prio=10 tid=0x00002aaaf4eb3000 nid=0x1573 in Object.wait() [0x000000005d6fd000..0x000000005d6fdd40] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002aaabbd60838> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Object.wait(Object.java:485) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656) - locked <0x00002aaabbd60838> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Thread.run(Thread.java:619) "http-8180-Processor298" daemon prio=10 tid=0x00002aaaf4eb1800 nid=0x1572 in Object.wait() [0x000000005d5fc000..0x000000005d5fccc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002aaabbd60c50> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Object.wait(Object.java:485) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656) - locked <0x00002aaabbd60c50> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Thread.run(Thread.java:619) "http-8180-Processor297" daemon prio=10 tid=0x00002aaaf4eb0400 nid=0x1571 runnable [0x000000005d4fb000..0x000000005d4fbc40] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:737) at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:398) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:827) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:619) "http-8180-Processor296" daemon prio=10 tid=0x00002aaaf4eaf000 nid=0x1570 in Object.wait() [0x000000005d3fa000..0x000000005d3fabc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002aaabbd61480> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Object.wait(Object.java:485) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656) - locked <0x00002aaabbd61480> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Thread.run(Thread.java:619)