Frage

Wie Sie erzeugen und ein Thread-Dump aus einer laufenden JBoss-Instanz analysieren?

War es hilfreich?

Lösung

Es gibt eine JBoss-spezifische Methode, die etwas benutzerfreundlicher ist:

http://community.jboss.org/wiki/GenerateAThreadDumpWithTheJMXConsole

Dies ist besonders nützlich, wenn Sie keinen direkten Zugriff auf die Host-Maschine (die die „kill“ erfordern würde).

Andere Tipps

http://java.sun.com/developer/technicalArticles/Programming/ stacktrace /

...

"Auf UNIX-Plattformen Sie ein Signal an ein Programm, indem Sie den Befehl kill senden können. Das ist das Signal zu beenden, die von der JVM behandelt wird. Zum Beispiel auf Solaris Sie den Befehl kill -quit process_id verwenden können, wo process_id ist der Prozess Nummer Ihres Java-Programm.

Alternativ können Sie die Tastenfolge eingeben \ in dem Fenster, in dem das Java-Programm gestartet wurde. dieses Signal gesendet weist einen Signal-Handler in der JVM, rekursiv alle Informationen innerhalb der JVM auf das Gewinde und Monitore auszudrucken. "

...

"Die Bestimmung der Thread-Zustände

Sie werden viele verschiedene Themen in vielen verschiedenen Zuständen in einem Schnappschuss von einer JVM-Stack-Trace sehen. Der Schlüssel wird verwendet:

R Lauf oder ausführbarer Thread

S Abgehängte Faden

CW Thema auf einer Bedingungsvariable warten

MW Gewinde auf einem Monitor Sperre warten

MS Gewinde auf einem Monitor Sperre suspendierte waiting "

Die Stacktrace App gefunden hier auch nützlich ist, vor allem auf Windows-Rechnern, wenn die Java-Anwendung wird nicht von der Kommandozeile aus.

gestartet

Thread.getAllStackTraces () (seit Java 1.5)

Zwei Optionen:

1 ein Thread-Dump generieren JMX-Konsole mit

Um ein Thread-Dump zu erzeugen:

  1. Öffnen Sie die JMXConsole (zum Beispiel: http://localhost:8080)
  2. Navigieren jboss.system:type=ServerInfo mbean ( Hinweis: Sie können sich wahrscheinlich nur STRG + F und type = Serverinfo im Dialogfeld eingeben)
  3. Klicken Sie auf den Link für den Server Info mbean.
  4. Navigieren nach unten, wo es heißt listThreadDump
  5. Klicken Sie es und erhalten Sie Ihre Thread-Dump

Weitere Informationen:

Wenn Sie den Internet Explorer verwenden, sollten Sie File > Save As verwenden, um die Ausgabe zu speichern, anstatt die Daten in einen Texteditor kopieren. Aus irgendeinem Grund, wenn Sie kopieren Sie den Text aus dem Internet Explorer die Zeilenumbrüche nicht kopiert werden und die gesamte Ausgabe endet auf einer einzigen Zeile nach oben.

2 einen Thread Dump generieren Twiddle mit

Alternativ können Sie twiddle verwenden, um die listThreadDump() Methode und Rohr der zurück HTML-Code direkt ausführen Datei. Verwenden Sie diese Befehlszeile:

<JBOSS_HOME>/bin/twiddle invoke "jboss.system:type=ServerInfo" listThreadDump > threads.html

Manchmal so viel JBoss Schlösser, dass auch JMX-concole reagiert nicht. In einem solchen Fall Gebrauch töten -3 auf Linux und SendSignal unter Windows.

https://community.jboss.org/wiki/ThreadDumpJSP Seite verfügt über eigenständiges Selbst threaddump.war dass enthalten sind, können ohne JMX verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top