...
| Auszug |
|---|
...
|
...
| |
Nuclos Speicherabbild: Heap Dump, Thread Dump, jvisualvm, JDK, JMX, OutOfMemoryException, Post-mortem, Tomcat. |
Sprache: Deutsch · English
Heap- und Thread-Dumps mit jvisualvm erzeugen – zur Analyse von Speicherlöchern, Freezes und für den Support.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | ||||||
|---|---|---|---|---|---|---|
| ||||||
Auf dieser Seite
|
Ein Speicherabbild (Heap-/Thread-Dump) hilft bei der Analyse von Speicherlöchern, Freezes und Abstürzen sowie beim Profiling. Es kann von Nuclos-Client und -Server erstellt werden.
| Info | ||
|---|---|---|
| ||
Oft lässt sich noch ein Post-mortem-Abbild erzeugen, selbst wenn bereits |
| Warnung | ||
|---|---|---|
| ||
Ein Speicherabbild enthält vertrauliche Daten deiner Anwendung. Gib es nur vertrauenswürdigen Personen weiter und verschlüssele es ggf. für den Transport. |
Du benötigst ein JDK (kein JRE!) auf dem betreffenden System. Läuft der Server unter Windows als Dienst, muss die Tomcat-JVM mit passenden JMX-Parametern gestartet werden (siehe Tomcat Administration). Neuere Installer erlauben im Entwicklungsmodus die Angabe eines JMX-Ports.
bin/jvisualvm (bzw. .exe) aus dem JDK starten.jvisualvm: Thread- und Heap-Dump erzeugen.
| Hinweis | ||
|---|---|---|
| ||
Läuft der Server als Windows-Dienst, ist er hier nicht direkt sichtbar: im Entwicklungsmodus betreiben und per Rechtsklick auf Local → Add JMX Connection… → |
| Info |
|---|
Es ist oft möglich, ein Speicherabbild selbst dann noch zu erstellen, wenn der Java Process bereits |
Manchmal ist es sinnvoll, ein Speicherabbild von Nuclos zu erstellen, z.B. für
Dem Wesen nach enthält ein Speicherabbild vertrauliche Daten aus Ihrer Nuclos Anwendung. Daher sollten sie ein solches Speicherabbild nur Personen zur Verfügung stellen, denen Sie vertrauen. Vielleicht möchten Sie das Speicherabbild sogar für den Transportweg verschlüsseln.
Ein Speicherabbild kann sowohl von einem Nuclos Client als auch von einem Nuclos Server erstellt werden.
Zur Erstellung eines Speicherabbildes benötigen Sie ein JDK (ein JRE reicht nicht!) auf dem Computersystem, auf dem Sie Nuclos laufen lassen (auf dem Client, falls Sie ein Nuclos Client Speicherabbild erzeugen wollen; auf dem Server, falls Sie ein Nuclos Server Speicherabbild erzeugen wollen).
Möchten Sie ein Speicherabbild eines Nuclos Servers, der unter Windows als Dienst läuft, erstellen, so müssen Sie zudem weitere Maßnahmen durchführen. Sie müssen sicher stellen, dass die Java VM des Servers (tomcats) mit bestimmten JMX Parametern gestartet wird. Details finden Sie unter Tomcat Administration.
| Info |
|---|
Neuere Nuclos Installer unterstützen im Entwicklungsmode die Angabe eines JMX Ports. Sie müssen in diesem Fall also nur sicherstellen, dass Sie den Server im Entwicklungsmode installieren. |
Die Installation Ihres JDKs beinhaltet eine Datei bin/jvisualvm bzw. bin/jvisualvm.exe, die Sie nun starten.
Wählen Sie im Baum links (Applications) die JavaVM Instanz, von der Sie das Speicherabbild erzeugen wollen, mit der rechten Maustaste aus. Ein Nuclos Server ist in diesem Baum als Tomcat verzeichnet, ein Nuclos Client als Java Web Start. Das Hauptfenster sollte ähnlich wie der folgende Screenshot aussehen:
| Warnung |
|---|
Wenn der Server als Windows Dienst läuft, können Sie ihn hier nicht direkt sehen. Sie müssen den Server im Entwicklungsmode betreiben (s.o.) und dann mit der rechten Maustaste auf den 'Local' Eintrag klicken: Context Menu -> Add JMX Connection... -> 'localhost:<JMX Port>' eingeben -> OK |
Wählen Sie nun hintereinander sowohl Thread Dump als auch Heap Dump. Dadurch öffen sich rechts zwei neue Reiter.
Speichern Sie die beiden Dumps als Dateien ab, indem Sie sie links mittels rechter Maustaste auswählen:
Diese beiden Dateien beinhalten das Speicherabbild.