Generieren Sie Heap Dump, Java Core & System Dump in WebSphere

Eine entscheidende Aufgabe für Systemadministratoren ist die Erstellung von Systemabbildern, Java-Core-Dumps und Heap-Dumps im WebSphere Application Server.

Im Rahmen der Fehlerbehebung in Anwendungen ist es üblich, die Ursachen entweder innerhalb der Anwendung selbst oder in der zugrundeliegenden Infrastruktur zu untersuchen.

Dies kann entweder über die WebSphere-Verwaltungskonsole oder über die Befehlszeile erfolgen. Die Wahl der Methode hängt von den persönlichen Präferenzen des Administrators ab.

1. Nutzung der WebSphere-Verwaltungskonsole

  • Zunächst müssen Sie sich an der DMGR-Konsole anmelden.
  • Navigieren Sie im linken Menü zum Punkt „Fehlerbehebung“.
  • Wählen Sie dort „Java-Dumps und -Kerne“.
  • Aus der angezeigten Liste wählen Sie die gewünschte JVM aus und klicken dann auf die Option zum Generieren des gewünschten Dumps.

Die erzeugten Dumps und Core-Dateien werden im Verzeichnis des WebSphere-Profils gespeichert. Der genaue Pfad wird in einer entsprechenden Meldung angezeigt.

2. Anwendung der Befehlszeile

  • Melden Sie sich auf dem entsprechenden WAS-Server an.
  • Wechseln Sie zum Profil- und Bin-Ordner.
  • Führen Sie die Datei wsadmin.sh aus.
[[email protected] bin]# ./wsadmin.sh
WASX7209I: Verbindung zum Prozess "dmgr" auf dem Knoten localhostCellManager01 über SOAP-Connector hergestellt; Der Prozesstyp ist: DeploymentManager
WASX7029I: Für Hilfe geben Sie ein: "$Help help"
wsadmin>
  • Definieren Sie den Namen der JVM in einer Variablen.
set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]

Hinweis: server1 dient hier als Beispiel. Ersetzen Sie dies durch den tatsächlichen Namen Ihrer JVM.

wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
WebSphere:name=JVM,process=server1,platform=proxy,node=localhostNode01,j2eeType=JVM,J2EEServer=server1,version=8.5.5.0,type=JVM,mbeanIdentifier=JVM,cell=localhostCell01,spec=1.0
wsadmin>

Heap-Dump erstellen

$AdminControl invoke $jvm generateHeapDump

Dieser Befehl generiert einen Heap-Dump und zeigt den Speicherort an.

wsadmin>$AdminControl invoke $jvm generateHeapDump
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/./heapdump.20160618.225441.4808.0006.phd
wsadmin>

Java-Core generieren

$AdminControl invoke $jvm dumpThreads

Dieser Befehl erstellt einen Thread-Dump, der ebenfalls im Profilpfad gespeichert wird.

Wie Sie sehen, ist das Erstellen von Dumps unkompliziert. Ihre Analyse ist immer lohnenswert. In meinem nächsten Artikel werde ich erklären, wie Sie diese für die Fehlerbehebung in Anwendungen nutzen können.

Hat Ihnen dieser Artikel gefallen? Teilen Sie ihn gerne mit anderen!