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.

19
demandé sur Abdullah 2013-09-02 16:33:08

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.

32
répondu Julien 2014-06-25 12:16:36

ajouter java melody à votre serveur https://code.google.com/p/javamelody/

il vous donner beaucoup d'informations, y compris les threads d'exécution

5
répondu olexii 2013-09-02 12:53:24

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.!!!

5
répondu Patrik Bego 2016-07-05 08:19:58

veuillez essayer NetBeans profiler pour profiler toutes les applications web.

https://profiler.netbeans.org/

http://wiki.netbeans.org/FaqProfilerAttachRemoteServer

0
répondu Prabhakaran 2013-09-02 12:37:34

les étapes suivantes devraient vous aider à faire tourner les threads Java actuels et à les analyser:

  1. téléchargez IBM JCA qui est un analyseur de dump de thread agréable de IBM Thread & Dump Monitor Analyzer
  2. 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
  3. 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
0
répondu Guido Medina 2013-11-07 15:23:05