Threads with state = BLOCKED are indicating that they have been
suspended (Object.wait). It's not a deadlock or something. If required,
they will be resumed and suspended again as soon as their work is done.
But they will not be terminated until the application is going to
terminate.
You can use
I don't see any deadlocks in that log. Looks like you had one or more
requests take a LONG time to finish and this caused a backlog of
requests. You can add logging to dispatch Request in Application to
log out the URI and length of time to process. That can help track
this down.
Hi Kristof,
there is no such mechanism as far as I know. Instead of terminating the
threads that are idling, they are suspended, in order to be resumed if
required.
They could be self-terminating, but creating a new thread is quite
resource intensive and it is better to reuse existing threads
Ah .. Maybe I misunderstood, that these are just idle listening
threads rather than deadlocked threads, though I'm still very
suspicious that your app ramped up to 256. Can you confirm from the
stack traces if those threads are actually hung vs waiting for a
connection?
ms
On Oct 14,
On Oct 14, 2009, at 7:03 AM, Mike Schrag wrote:
Ah .. Maybe I misunderstood, that these are just idle listening
threads rather than deadlocked threads, though I'm still very
suspicious that your app ramped up to 256. Can you confirm from the
stack traces if those threads are actually hung