We have exactly the same problem. The only difference that we are using FreeBSD 6.0-STABLE,I386 and Java version 1.4.2-p7.
The problem occurs exactly in the same way. When high loading, after some time app hangs (no activity of Java and DB server, 100% idle) and app do not response at all. We are using basic authentification, and even with a opening new connection, no login/password is appeared via browser, so it means that Tomcat hangs completelly and it is not about application or database connection.
When we tried the same app by using Windows XP server by making a lot of high loading requests, app is slow, but never hangs.
It is very critical problem for us :(
Can you get a stack trace?
Sorry, already can't. It was time-critical for us. Moved to the Windows OS, problem disapperied. Propably it was the problem of using 64-bit FreeBSD and 32-bit Java, seems an threads using specific problem.
Seems a lot of the problems is because of logging. The SocketHubAppender causes the most of the problems.
A lot of threads is waiting for a lock:
"http-0.0.0.0-8080-53" daemon prio=1 tid=0x671b8858 nid=0x5cf1 waiting for monitor entry [0x5ff97000..0x5ff98670] at org.apache.log4j.Category.callAppenders(Category.java:185) - waiting to lock <0x7160bb18> (a org.apache.log4j.Logger)
One thread is waiting in socket write for some reason and makes all logging threads block.
"http-0.0.0.0-8080-14" daemon prio=1 tid=0x08abd560 nid=0x5c8d runnable [0x688a4000..0x688a57f0] at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
found this by using kill -3 on the Java process.