Как удаленно получить дамп потока Java - PullRequest
5 голосов
/ 30 июня 2011

JVisualVM подключается к процессу Java через JMX и может создавать дамп потока нажатием кнопки. Я хотел бы добавить аналогичную функцию в свое собственное приложение, чтобы оно могло запрашивать дампы потоков из удаленных служб.

Какие MBeans мне нужно опросить, чтобы получить эту информацию? и как?

Ответы [ 2 ]

9 голосов
/ 30 июня 2011

Вы можете использовать MBean с именем "java.lang:type=Threading". Его интерфейс описан здесь .

Чтобы получить дамп потока, сначала нужно использовать метод getAllThreadIds, а затем перебрать все полученные идентификаторы и вызвать метод getThreadInfo для каждого из них.

4 голосов
/ 30 июня 2011

Вы можете использовать ThreadMXBean интерфейс управления.

Этот класс FullThreadDump демонстрирует возможность получения полного дампа потока, а также удаленного обнаружения взаимоблокировки с использованием JMX.

...