2008-09-12 7 views

Antwort

4

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. Dieser wird das Signal zu beenden, die von der JVM behandelt wird. Zum Beispiel, auf Solaris können Sie den Befehl kill -quit process_id verwenden, wo process_id der Prozess Nummer Ihres Java-Programm.

Alternativ können Sie die Tastenfolge <ctrl> \ in dem Fenster, in dem das Java-Programm gestartet eingeben. Senden dieser Signal weist einen Signalhandler in der JVM an, rekursiv alle Informationen zu den Threads und Monitoren innerhalb der JVM ausdrucken. "

...

„Die Ermittlung der Thread-Zustände

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

R Lauf oder ausführbarer Thread

aufgehängter Gewinde

CW Gewinde auf einer Bedingungsvariable Warte

MW Thema auf einem Monitor wartet sperren

MS Faden aufgehängt auf einem Monitor Sperre“wartet

1

Die Stacktrace App gefunden here ist auch nützlich, vor allem auf Windows-Maschinen, wenn die Java-App nicht über die Befehlszeile gestartet wird.

0

Manchmal sperrt JBoss so sehr, dass selbst jmx-concole nicht reagiert. In diesem Fall kill -3 unter Linux und SendSignal unter Windows verwenden.

1

Thread.getAllStackTraces() (seit Java 1.5)

1

zwei Optionen:

OPTION 1Generieren Sie ein Thread-Dump mit JMX-Konsole

Um ein Thread-Dump zu erzeugen:

  1. öffnen JMXConsole (zB : http://localhost:8080)
  2. Navigieren Sie zu jboss.system:type=ServerInfo mbean (Hinweis: können Sie wahrscheinlich nur STRG-F und geben Sie Typ = ServerInfo im Dialogfeld ein)
  3. Klicken Sie auf den Link für die Server Info mbean.
  4. Navigieren nach unten, wo es heißt listThreadDump
  5. es klicken und Ihr Thread

Hinweise erhalten Dump:

Wenn Sie Internet Explorer verwenden, sollten Sie File > Save As verwenden, um die Ausgabe anstelle des Kopierens zu speichern die Daten in einen Texteditor. Wenn Sie den Text aus Internet Explorer kopieren, werden die Zeilenumbrüche aus irgendeinem Grund nicht kopiert, und die gesamte Ausgabe endet in einer einzelnen Zeile.

OPTION 2generieren einen Thread Dump Twiddle mit

Alternativ können Sie das listThreadDump() Verfahren und Rohr der zurück HTML-Datei direkt verwenden twiddle auszuführen. Verwenden Sie diese Befehlszeile:

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