如何远程检索java线程转储

时间:2011-06-30 12:52:59

标签: java jmx

JVisualVM通过JMX连接到Java进程,并且可以通过单击按钮生成线程转储。我想在我自己的应用程序中添加一个类似的功能,以便它可以从远程服务请求线程转储。

我需要哪些MBean才能获取此信息?怎么样?

2 个答案:

答案 0 :(得分:9)

您可以使用名称为"java.lang:type=Threading"的MBean。它的界面描述为here

为了获得线程转储,首先需要使用getAllThreadIds方法,然后遍历所有检索到的id并为每个ID调用getThreadInfo方法。

答案 1 :(得分:4)

您可以使用ThreadMXBean管理界面。

FullThreadDump类演示了获取完整线程转储的能力,并使用JMX远程检测死锁。