Hello people,
I faced with problem during migration web-application from Resin to GlassFish v3.0.1. Already during regression tests (with Selenium) it start to hangs. Browser shows empty page with no sources - and no meta, no head no body (Firefox, and IE).
I thought it is problem of Selenium. But problem was reproduced manually and also in IE8, FireFox 4, Chrome 6. Different client machines was used including Windows and UBuntu 10.01 (so antivirus impact excluded);
During accident I made some snapshots (THREAD and even HEAP) with jvisualvm over JMX. Analyzing thread shows that there is a thread on server which servers browsers request and has a state "WAIT". Monitor waiting for object instance #123456 which is not exists in HEAP dump (queries using OQL in NetBeans).
Investigated also DB-pool (enabled fine logging and then over JMX monitor JDBC-POOL-MON). Oracle 11g enterprise is used like DB. Driver 11.2.0.1ga is used. JDK 1.6.0_21 x64 server mode. Maximal allowed size of JDBC pool was: 50 conn. Maximal monitored size of JDBC was 10 (startup connections amount) and peak of used connections was only 7. Connection leak is also activated. No any detected over 2 hours regression test.
HTTP Thread pool allows 200 threads where in peak was 181 active thread and normally 114 demons threads.
Grizly is used like WEB-service with static text caching and gzip compression. NIO is active and I have tried both java and native buffers for tcp.
Some my friends told me don't use directly Grizly but put upfront Apache Web Server and use mod_proxy. Did not try yet but I would like to use only GlassFish v3 without Apache Web Server. I hope it can show then better throwput.
Anyway I don't have any ideas what could be a reason of this strange behavior. Any idea could help a lot!
p.s.: Under Resin application works fine on the same JDK with the same DB, and driver and the same regression test is used. And even in production we don't have this kind of problems.
Thanks, Max.