JVisualVM連接到一個Java進程在JMX,並且可以通過點擊按鈕產生的線程轉儲。我想爲我自己的應用程序添加一個類似的功能,以便它可以從遠程服務請求線程轉儲。如何遠程檢索Java線程轉儲
其中的MBean,我需要詢問來獲取這些信息?如何?
JVisualVM連接到一個Java進程在JMX,並且可以通過點擊按鈕產生的線程轉儲。我想爲我自己的應用程序添加一個類似的功能,以便它可以從遠程服務請求線程轉儲。如何遠程檢索Java線程轉儲
其中的MBean,我需要詢問來獲取這些信息?如何?
可以使用的MBean與名"java.lang:type=Threading"
。它的接口描述爲here。
爲了獲得線程轉儲,首先需要使用getAllThreadIds
方法,然後遍歷所有檢索到的ID並針對每個ID調用getThreadInfo
方法。
可以使用ThreadMXBean管理界面。
這FullThreadDump類演示來得到一個完整的線程轉儲和還可以遠程使用JMX檢測僵局的能力。