How do you generate and analyze a thread dump from a running JBoss instance?
views:
3211answers:
3http://java.sun.com/developer/technicalArticles/Programming/Stacktrace/
...
"On UNIX platforms you can send a signal to a program by using the kill command. This is the quit signal, which is handled by the JVM. For example, on Solaris you can use the command kill -QUIT process_id, where process_id is the process number of your Java program.
Alternatively you can enter the key sequence <ctrl>\ in the window where the Java program was started. Sending this signal instructs a signal handler in the JVM, to recursively print out all the information on the threads and monitors inside the JVM."
...
"Determining the Thread States
You will see many different threads in many different states in a snapshot from a JVM stack trace. The key used is:
R Running or runnable thread
S Suspended thread
CW Thread waiting on a condition variable
MW Thread waiting on a monitor lock
MS Thread suspended waiting on a monitor lock"
There is a JBoss-specific method that is slightly more user-friendly:
http://wiki.jboss.org/wiki/GenerateAThreadDumpWithTheJMXConsole
This is especially useful when you don't have direct access to the host machine (which "kill" would require).