Tomcat thread dump
Est-il loin de prendre un thread dump à partir de Tomcat. Je veux surveiller les threads sur Tomcat à un certain moment.
Remarque: je le faisais sur Web logic mais je ne sais pas comment faire sur Tomcat.
5 réponses
si vous utilisez Linux, vous pouvez envoyer un kill -3 [pid de votre tomcat] et il va vider tous les threads courants dans le catalina.hors.
ajouter java melody à votre serveur https://code.google.com/p/javamelody/
il vous donner beaucoup d'informations, y compris les threads d'exécution
Il existe un moyen simple de surveiller les threads tomcat et de faire un dump. Démarrer tomcat avec le suivant options java :
-Dcom.sun.management.jmxremote.port=<some free port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
après le redémarrage du tomcat, vous pouvez simplement démarrer jconsole (partie de jdk) ou visualvm et créer une nouvelle connexion jmx au port que vous avez choisi ci-dessus.
Dans les deux outils vous avez également la possibilité de prendre un cliché ;)
!!!Mais ne le faites que dans un environnement fermé/sécurisé - puisqu'il n'y a pas d'ensemble d'authentification.!!!
veuillez essayer NetBeans profiler pour profiler toutes les applications web.
les étapes suivantes devraient vous aider à faire tourner les threads Java actuels et à les analyser:
- téléchargez IBM JCA qui est un analyseur de dump de thread agréable de IBM Thread & Dump Monitor Analyzer
- exécutez ce qui suit pour obtenir le dump des threads Tomcat:
root@localhost:~# sudo -u $TOMCAT_USER $JAVA_HOME/bin/jstack -J-d64 -l $(ps aux | grep '[c]atalina' | awk '{print }') > ~/threads.log
- ouvrez les threads avec IBM Thread & Dump Monitor Analyzer
Remarque: Remplacer $JAVA_HOME
avec le chemin de votre votre JDK actuel,$TOMCAT_USER
avec L'utilisateur exécutant Tomcat; si vous passez le mauvais utilisateur ou même en utilisant root vous obtiendrez une erreur comme ceci:
3047: well-known file is not secure