tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: Thread waiting
Date Mon, 16 Jul 2007 17:18:44 GMT
André,

André Vila Cova wrote:
> How can I say for what is the tread waiting?

As a follow-up to David's reply, I'd like to be a little more specific.

> "http-8085-Processor23" daemon prio=1 tid=0xdd4b7ae8 nid=0x2d41 in
> Object.wait() [0xde29b000..0xde29c020]

This line of output tells you which thread (http-8085-Processor23), what
type of thread it is (daemon), it's priority, and then method it's
currently in (Object.wait).

>        at java.lang.Object.wait(Native Method)

This line confirms that the thread is in Object.wait().

The JVM knows that Object.wait is a special method that requires a
"monitor" (the object being waited for), and it tells you

>        - waiting on <0xe61981f0> (a
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)

This line tells you what the monitor is (the object being waited on).
It's the object with reference 0xe61981f0, which is a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable object. I'm
not expert on Tomcat internals, but I'm guessing that ControlRunnable is
related to request dispatching.

This thread is clearly waiting on a notification of a request coming
into the server. Therefore, it can be considered IDLE, and not doing
anything at all.

If you really do have multiple <Connectors>, and you are only using one
(which is likely), then the threads for the other 2 connectors will
always be idle.

-chris



Mime
View raw message