You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by André Vila Cova <an...@gmail.com> on 2007/07/16 12:52:23 UTC

Thread waiting

Hi!

How can I say for what is the tread waiting?

"http-8085-Processor23" daemon prio=1 tid=0xdd4b7ae8 nid=0x2d41 in
Object.wait() [0xde29b000..0xde29c020]
        at java.lang.Object.wait(Native Method)
        - waiting on <0xe61981f0> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Object.wait(Object.java:474)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:656)
        - locked <0xe61981f0> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:595)

Thanks a lot

Re: Thread waiting

Posted by Christopher Schultz <ch...@christopherschultz.net>.
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



Re: Thread waiting

Posted by David Delbecq <de...@oma.be>.
It waits for a specific java.lang.Object to get 'notified' by another
Thread. Typically, in your stacktrace, the Thread is simply waiting for
tomcat to give him an http Request to process.

En l'instant précis du 16/07/07 12:52, André Vila Cova s'exprimait en
ces termes:
> Hi!
>
> How can I say for what is the tread waiting?
>
> "http-8085-Processor23" daemon prio=1 tid=0xdd4b7ae8 nid=0x2d41 in
> Object.wait() [0xde29b000..0xde29c020]
>        at java.lang.Object.wait(Native Method)
>        - waiting on <0xe61981f0> (a
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
>        at java.lang.Object.wait(Object.java:474)
>        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:656)
>        - locked <0xe61981f0> (a
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
>        at java.lang.Thread.run(Thread.java:595)
>
> Thanks a lot
>


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org