Update: This looks like a memory issue. A 3.8 Gb Hprof file indicated that the JVM was dumping-its-heap when this \"blocking\" occurred. Our operations team
These are listed roughly in the order I would try them, depending on the evidence collected:
newInstance()
and a few others above being blocked. Run your VM with -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc
and log the output. Are you seeing excessive GC times near the time of failure/lockup?
OutOfMemoryError
when you should, you can tune the GC tunables... see JDK6.0 XX options, or JDK6.0 GC Tuning Whitepaper. Look specifically at -XX:+UseGCOverheadLimit
and -XX:+GCTimeLimit
and related options. (note these are not well documented, but may be useful...)jconsole
can do this for you ... (yep, under the threads tab, "detect deadlocks")