Archive for April, 2007

JConsole / Attach On Demand

Tuesday, April 10th, 2007

Eine der wesentlichen Neuerungen im JDK6 ist das “Attach on Demand”. Monitoringtools können sich zur Laufzeit mit einer JVM verbinden. Im JDK5 war das auch möglich, allerdings musste
die JVM vorher mit dem Parameter -Dcom.sun.management.jmxremote gestartet werden, was mit JDK6 nun nicht mehr notwendig ist.

Mit dem Tool “jconsole” stellt Sun bereits ein umfangreiches Diagnosetool zur Verfügung. Der Entwickler bzw. Administrator hat unter anderem die Übersicht über die Auslastung der einzelnen Speicherbereiche (”Eden Space”, “Survivor Space”, usw.) oder kann sich alle laufenden Threads mit ihren StackTraces ansehen.

Screenshot der JConsole Applikation mit Anzeige der laufenden Threads

Interessanterweise zeigt jconsole in der Prozessauswahl keine Prozesse an, die mit
lokalen Systemaccount gestartet worden sind. (Beispielweise ein als Service laufender Apache Tomcat).
Abhilfe schafft das Starten der jconsole über die Kommandozeile mit der Prozess-Id als Parameter.
Beispiel:

jconsole 4320

Weitere spannende Monitoringtools werden in diesem Artikel beschrieben.