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