Generate a Java thread dump without restarting.
I'd like to create a thread that keeps track of the memory usage and cpu usage. If the application reaches a high level, I want to generate an heap dump or a thread dump. Is there a way to generate a Thread dump runtime without restarting? Here's how we do it programmatically: http://pastebin.com/uS5jYpd4 We use the JMX ThreadMXBean and ThreadInfo classes: ThreadMXBean mxBean = ManagementFactory.getThreadMXBean(); ThreadInfo[] threadInfos = mxBean.getThreadInfo(mxBean.getAllThreadIds(), 0); ... You can also do a kill -QUIT pid under ~unix to dump the stacks to the standard-out. There is also