Y a-t-il moyen de prendre un vidage de thread de Tomcat. Je veux surveiller les threads en cours d'exécution sur Tomcat à un moment donné.
Remarque: Je faisais cela sur la logique Web mais je ne sais pas comment cela peut être fait sur Tomcat.
Si vous utilisez Linux, vous pouvez envoyer un kill -3 [pid de votre Tomcat] et il videra tous les threads actuels du fichier catalina.out.
Il existe un moyen simple de surveiller les threads Tomcat et de faire un cliché. Lancez Tomcat avec les options Java suivantes:
-Dcom.Sun.management.jmxremote.port=<some free port>
-Dcom.Sun.management.jmxremote.ssl=false
-Dcom.Sun.management.jmxremote.authenticate=false
Une fois Tomcat redémarré, vous pouvez simplement démarrer jconsole (composant 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 faire un dump;)
!!! Mais faites cela uniquement dans un environnement fermé/sécurisé - car il n'y a pas d'authentification définie. !!!
ajoutez une mélodie Java à votre serveur https://code.google.com/p/javamelody/
il vous donne beaucoup d'informations, y compris les discussions dans le runtime
Veuillez essayer le profileur Netbeans pour profiler toutes les applications Web.
Les étapes suivantes devraient vous aider à exécuter et à analyser les threads Java actuels:
root@localhost:~# Sudo -u $Tomcat_USER $Java_HOME/bin/jstack -J-d64 -l $(ps aux | grep '[c]atalina' | awk '{print $2}') > ~/threads.log
Remarque: Remplacez $Java_HOME
par votre chemin d'accès à votre JDK actuel, $Tomcat_USER
par l'utilisateur exécutant Tomcat; Si vous passez le mauvais utilisateur ou même l’utilisation de root, vous obtiendrez une erreur comme celle-ci:
3047: well-known file is not secure