Release : All supported releases
The easiest way to get thread dumps is via command-line on the app server host, using jstack.exe which is in the bin dir of the JDK.
use ps -ef | grep java to get the pid, find JDK_HOME/bin, then issue cmd:
jstack -l <pid> <file-path>
jstack -l 37320 > /opt/tmp/threadDump.txt
You want 5 or 6 across a single minute so we can see what methods might be stuck or active across that whole minute. Perhaps at a few different times during your "hang", you could capture 5 or 6 thread-dumps in 60-seconds worth of time.
It will be best to have these different sections of time in their own file, for example:
jstack -l pid > /opt/tmp/threadDumpA.txt for 5 or 6 times in a single minute of the hang, then later
jstack -l pid > /opt/tmp/threadDumpB.txt .... 5 or 6 times, then later
jstack -l pid > /opt/tmp/threadDumpC.txt