Wie generieren und analysieren Sie einen Thread-Dump von einer laufenden JBoss-Instanz?Wie generieren und analysieren Sie einen Thread-Dump von einer laufenden JBoss-Instanz?
Antwort
ist eine JBoss-spezifische Methode gibt, die etwas benutzerfreundlicher ist:
http://community.jboss.org/wiki/GenerateAThreadDumpWithTheJMXConsole
Dies ist besonders nützlich, wenn Sie keinen direkten Zugriff auf den Host-Rechner haben (was "Kill" erfordern würde).
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
Die Stacktrace App gefunden here ist auch nützlich, vor allem auf Windows-Maschinen, wenn die Java-App nicht über die Befehlszeile gestartet wird.
Manchmal sperrt JBoss so sehr, dass selbst jmx-concole nicht reagiert. In diesem Fall kill -3 unter Linux und SendSignal unter Windows verwenden.
Thread.getAllStackTraces() (seit Java 1.5)
zwei Optionen:
OPTION 1Generieren Sie ein Thread-Dump mit JMX-Konsole
Um ein Thread-Dump zu erzeugen:
- öffnen JMXConsole (zB :
http://localhost:8080
) - Navigieren Sie zu
jboss.system:type=ServerInfo
mbean (Hinweis: können Sie wahrscheinlich nur STRG-F und geben Sie Typ = ServerInfo im Dialogfeld ein) - Klicken Sie auf den Link für die Server Info mbean.
- Navigieren nach unten, wo es heißt
listThreadDump
- 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
https://community.jboss.org/wiki/ThreadDumpJSP Seite Funktionen standalone umluftunabhängigem threaddump.war dass ohne JMX verwendet werden kann.
- 1. So generieren Sie einen großen Datenstrom im laufenden Betrieb
- 2. So erfassen Sie einen Heap-Dump von einer laufenden JVM
- 3. Generieren von RDP-Datei im laufenden Betrieb
- 4. Angular: Generieren von Datenbankinformationen im laufenden Betrieb
- 5. Wie generieren Sie einen RSS-Feed?
- 6. So analysieren Sie einen NSString
- 7. Wie würden Sie einen wiederholbaren Verschlüsselungsschlüssel generieren?
- 8. Töten Sie einen laufenden Prozess in ColdFusion?
- 9. So generieren Sie ein vorgefülltes ausfüllbares PDF, ändern Sie den Inhalt und analysieren Sie den Inhalt
- 10. Wie füllt man mit einer Azure DataFactory-Pipeline einen Backfill auf und konvertiert sie dann in einen laufenden Zeitplan?
- 11. Wie lesen/analysieren Sie Inhalt von OkNegotiatedContentResult?
- 12. PHPSstorm kann einen Pfad von einer Variablen nicht analysieren?
- 13. Programm zum Analysieren einer Menge von XML
- 14. Snap.svg: Wie programmiere ich einen laufenden Ziehvorgang?
- 15. visio-Diagramm im laufenden Betrieb mit .NET generieren
- 16. Wie Sie einen laufenden Upload in plupload stoppen
- 17. Wie beendet der Taskplaner einen laufenden Job?
- 18. Wie XML in PHP zu analysieren, dynamische SQL-Einfügeanweisungen generieren
- 19. Einen Benutzernamen generieren
- 20. Analysieren Sie einen Wert für ein Array
- 21. Generieren einer clientspezifischen Verifikationsnummer für einen Webdienst
- 22. Wie generieren Sie Versionshinweise?
- 23. Abrufen einer Liste verwendeter Bibliotheken durch einen laufenden Prozess (UNIX)
- 24. Wie ASIHTTPRequest zu einer laufenden ASINetworkQueue hinzufügen?
- 25. Generieren Sie eine Liste von Zufallswerten und erhalten Sie einen neuen Generator
- 26. Wie kommt man in einen laufenden Prozess?
- 27. Generieren Sie einen zufälligen Buchstaben in Python
- 28. programmgesteuert ausführen und einen lang laufenden Batch-Prozess in Python
- 29. Wie analysieren Sie in Groovy einen String und konvertieren ihn in einen Map-Typ?
- 30. Kill einen laufenden Subprozess Aufruf
Siehe https://community.jboss.org/wiki/ThreadDump für einige Optionen. – Vadzim