Дамп потоков 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 профилировать любые веб-приложения.
следующие шаги должны помочь вам запустить текущие потоки Java и проанализировать их:
- загрузите IBM JCA, который является хорошим анализатором дампа потока из IBM Thread & Dump Monitor Analyzer
- выполните следующие действия, чтобы получить дамп потоков Tomcat:
root@localhost:~# sudo -u $TOMCAT_USER $JAVA_HOME/bin/jstack -J-d64 -l $(ps aux | grep '[c]atalina' | awk '{print }') > ~/threads.log
- откройте дамп потоков с помощью IBM Thread & Dump Monitor Analyzer
Примечание: заменить $JAVA_HOME
С вашего пути для вашего текущего JDK,$TOMCAT_USER
С пользователем под управлением Tomcat; если вы передадите неправильный пользователь или даже с помощью root вы получите ошибку, как это:
3047: well-known file is not secure