JVisualVM通过JMX连接到Java进程,并且可以通过单击按钮生成线程转储。我想在我自己的应用程序中添加一个类似的功能,以便它可以从远程服务请求线程转储。
我需要哪些MBean才能获取此信息?怎么样?
答案 0 :(得分:9)
您可以使用名称为"java.lang:type=Threading"
的MBean。它的界面描述为here。
为了获得线程转储,首先需要使用getAllThreadIds
方法,然后遍历所有检索到的id并为每个ID调用getThreadInfo
方法。
答案 1 :(得分:4)
您可以使用ThreadMXBean管理界面。
此FullThreadDump类演示了获取完整线程转储的能力,并使用JMX远程检测死锁。