users@glassfish.java.net

Re: questions on threads...

From: Jacob Kessler <Jacob.Kessler_at_Sun.COM>
Date: Wed, 20 Aug 2008 09:59:39 -0700

Blocking isn't inherently bad, it means that the threads are waiting for
something else to happen before they can continue their execution, and
so the JVM won't schedule them for execution until that something else
happens, and they won't waste processor cycles that other threads could
be using productively. Blocking is only bad when it ends up either
waiting for something that isn't going to happen, or when two threads
end up waiting on each other. In this case, it looks like they are
blocked waiting for Grizzly to give them a task (such as someone logging
on or off), so it looks like them blocking is fine, and even desirable:
you won't have four users trying to log on or off at all times, so the
threads will have idle time.

I'm not familiar with SSL or how Grizzly handles it, so I wouldn't be
able to answer that part. If you are able to successfully log on and
off, however, then the threads are working correctly, and I wouldn't
worry about it. Do you know if the threads ever enter their
handleLogin() method?

Hopefully this helps.

--
Jacob Kessler
Russ Petruzzelli wrote:
> Running a few virtual users on my web application: login/logout.
> While monitoring the application server (9.0u1) with jconsole I see a 
> four SSL worker threads  blocking with very high counts...on 
> (seemingly) th e wrong ports.
> (my http-listeners are configured with 4 acceptor threads.)
> Questions:
> Why would an SSL thread be looking at my non-SSL port (8080)?
> And ....
> Blocking is a bad thing, is it not?
>
> Thanks,
> Russ
>
>     =-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-==-
>     Name: httpSSLWorkerThread-8080-0
>     State: WAITING on
>     com.sun.enterprise.web.portunif.PortUnificationPipeline_at_5069e62e
>     Total blocked: 20,531  Total waited: 14,611
>
>     Stack trace:
>     java.lang.Object.wait(Native Method)
>     java.lang.Object.wait(Object.java:485)
>     com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)
>     com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)
>     =-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-==-
>     Name: httpSSLWorkerThread-8080-1
>     State: WAITING on
>     com.sun.enterprise.web.portunif.PortUnificationPipeline_at_5069e62e
>     Total blocked: 20,738  Total waited: 14,653
>
>     Stack trace:
>     java.lang.Object.wait(Native Method)
>     java.lang.Object.wait(Object.java:485)
>     com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)
>     com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)
>     =-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-==-
>     Name: httpSSLWorkerThread-8080-2
>     State: WAITING on
>     com.sun.enterprise.web.portunif.PortUnificationPipeline_at_5069e62e
>     Total blocked: 19,703  Total waited: 14,631
>
>     Stack trace:
>     java.lang.Object.wait(Native Method)
>     java.lang.Object.wait(Object.java:485)
>     com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)
>     com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)
>
>     =-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-==-
>     Name: httpSSLWorkerThread-8080-3
>     State: WAITING on
>     com.sun.enterprise.web.portunif.PortUnificationPipeline_at_5069e62e
>     Total blocked: 20,063  Total waited: 14,625
>
>     Stack trace:
>     java.lang.Object.wait(Native Method)
>     java.lang.Object.wait(Object.java:485)
>     com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)
>     com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)
>     =-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-==-
>     Name: httpSSLWorkerThread-8080-4
>     State: WAITING on
>     com.sun.enterprise.web.portunif.PortUnificationPipeline_at_5069e62e
>     Total blocked: 19,572  Total waited: 14,259
>
>     Stack trace:
>     java.lang.Object.wait(Native Method)
>     java.lang.Object.wait(Object.java:485)
>     com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)
>     com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)
>     =-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-==-
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net