Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Auszug

...

hidden

...

true

Nuclos Speicherabbild: Heap Dump, Thread Dump, jvisualvm, JDK, JMX, OutOfMemoryException, Post-mortem, Tomcat.

globe with meridians Sprache: Deutsch · English

hammer and wrench Speicherabbild von Nuclos erstellen

Heap- und Thread-Dumps mit jvisualvm erzeugen – zur Analyse von Speicherlöchern, Freezes und für den Support.

Status
colourPurple
titleHow-to
Status
colourBlue
titleAdministrator
Status
colourGreen
titleStand: Jul 2026
Status
colourGrey
titlegilt fuer Nuclos 4.2026.x

Panel
bgColor#F4F5F7

Auf dieser Seite

Inhalt
maxLevel2
minLevel2

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
titlePost-mortem zuerst

Oft lässt sich noch ein Post-mortem-Abbild erzeugen, selbst wenn bereits OutOfMemoryExceptions geworfen wurden. Versuche dies immer, bevor du Nuclos neu startest.

Warnung
titleVertraulichkeit

Ein Speicherabbild enthält vertrauliche Daten deiner Anwendung. Gib es nur vertrauenswürdigen Personen weiter und verschlüssele es ggf. für den Transport.

Voraussetzung

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.

Speicherabbild mit jvisualvm

  1. bin/jvisualvm (bzw. .exe) aus dem JDK starten.
  2. Links unter Applications die JVM-Instanz per Rechtsklick wählen – der Server erscheint als Tomcat, der Client als Java Web Start.
  3. Nacheinander Thread Dump und Heap Dump erzeugen und jeweils als Datei speichern.
Image Added

jvisualvm: Thread- und Heap-Dump erzeugen.

Hinweis
titleWindows-Dienst

Läuft der Server als Windows-Dienst, ist er hier nicht direkt sichtbar: im Entwicklungsmodus betreiben und per Rechtsklick auf LocalAdd JMX Connection…localhost:<JMX-Port> verbinden.

Verwandte Seiten

gear Tomcat Administration


JMX/Tomcat.

Öffnen →

gear Datenbank


DB.

Öffnen →

Speicherabbild von Nuclos erstellen

Info

Es ist oft möglich, ein Speicherabbild selbst dann noch zu erstellen, wenn der Java Process bereits OutOfMemoryExceptions geworfen (und geloggt) hat. Im Probelmfall sollten Sie stets versuchen ein solches post-mortem Speicherabbild zu erzeugen, bevor sie Nuclos neu starten.

Manchmal ist es sinnvoll, ein Speicherabbild von Nuclos zu erstellen, z.B. für

  • Aufspüren von Speicherlöchern
  • Post-Mortem Analyse eines Freezes bzw. Absturzes
  • Profiling von Nuclos
    (Welche Teile des Codes benötigen viel Zeit und warum?)
  • Unterstützung der Fehlerbehebung, wenn Sie ein Ticket eröffnet haben.
    (Novabit wird Sie dann u.U. bitten, ein Speicherabbild zu erstellen und zur Verfügung zu stellen)

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.

Vorbereitung

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.

Speicherbild mit jvisualvm

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:

Image Removed

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:

Image Removed

Diese beiden Dateien beinhalten das Speicherabbild.