Дамп потоков Tomcat

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

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

5 ответов


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


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

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


существует простой способ контролировать потоки tomcat и делать дамп. Запустите tomcat с параметрами folowing 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 с портом, который вы выбрали выше.
В обоих инструментах у вас также есть возможность взять дамп;)

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


пожалуйста, попробуйте NetBeans profiler профилировать любые веб-приложения.

https://profiler.netbeans.org/

http://wiki.netbeans.org/FaqProfilerAttachRemoteServer


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

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

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

3047: well-known file is not secure