Подтвердить что ты не робот

Дамп потока Tomcat

Оттуда вытащите дамп потока из Tomcat. Я хочу отслеживать текущие потоки на Tomcat в определенное время.

Примечание: Я делал это в веб-логике, но я не знаю, как это сделать на Tomcat.

4b9b3361

Ответ 1

Если вы используете Linux, вы можете отправить kill -3 [pid вашего tomcat] и сбрасывать все текущие потоки в файле catalina.out.

Ответ 2

добавить java мелодию на ваш сервер https://code.google.com/p/javamelody/

он дает вам много информации, включая потоки во время выполнения

Ответ 3

Существует простой способ мониторинга потоков tomcat и создания дампа. Запустите tomcat с помощью следующих вариантов java:

-Dcom.sun.management.jmxremote.port=<some free port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

После перезапуска tomcat вы можете просто запустить jconsole (часть jdk) или visualvm и создать новое соединение jmx с портом, который вы выбрали выше.
В обоих инструментах у вас также есть возможность взять дамп;)

!!! Но делайте это только в закрытой/защищенной среде - поскольку нет набора подлинности.!!!

Ответ 5

Следующие шаги помогут вам получить текущие потоки Java и проанализировать их:

  • Загрузите IBM JCA, который является хорошим анализатором дампов потока из IBM Thread and Dump Monitor Analyzer
  • Выполните следующее, чтобы получить дамп потоков Tomcat: [email protected]:~# sudo -u $TOMCAT_USER $JAVA_HOME/bin/jstack -J-d64 -l $(ps aux | grep '[c]atalina' | awk '{print $2}') > ~/threads.log
  • Откройте дамп потоков с помощью IBM Thread and Dump Monitor Analyzer

Примечание. Замените $JAVA_HOME на ваш путь к вашему текущему JDK, $TOMCAT_USER с пользователем, работающим с Tomcat; если вы пропустите неправильного пользователя или даже используете root, вы получите сообщение об ошибке:

3047: well-known file is not secure