24.2 Überwachen von Systemzuständen 

In diesem Unterkapitel geht es nicht um Autos, sondern um die Überwachung (neudeutsch Monitoring) eines Systems. Die Steuereinheiten überwachen im laufenden Betrieb das System beziehungsweise die Komponenten, die Ressourcen. Notwendig ist viel: Statusmeldungen, Diagnose bzw. Debugging, Performance-Analyse zum Tuning und weiteres. Weiterhin sollen zur Laufzeit Konfigurationen am System vorgenommen werden, um zum Beispiel Logging ein- oder auszuschalten.
Übertragen wir das Monitoring auf Java, stellt sich das erste Problem: dass es auf den unterschiedlichsten Ebenen etwas zu überwachen gibt: Auf der Hardwareseite finden wir die CPU-Auslastung oder den Ein-/Ausgabe-Durchsatz, auf der Seite des Betriebssystems die Zuteilung bei Mehrprozessorsystemen, bei der JVM den Garbage Collector, bei einem Servlet Container die Frage nach den Verbindungen pro Minute und bei unserer Anwendung die Angabe, wie viele Kunden die Bestellung abgebrochen haben. All diese zu überwachenden Elemente unter einen Hut zu bekommen, ist fast unmöglich, und so sind in den letzten Jahren Standards für bestimmte Teile entstanden; der bekannteste ist das Simple Network Management Protocol (SNMP).
Für das Management von Java-Applikationen hat Sun die Java Management Extensions (JMX) entwickelt. JMX wird kontinuierlich im Java Community Process weiterentwickelt und ist eine bewährte Technologie, die seit einigen Jahren verfügbar ist. In Java 5 sind Teile vom JMX (und andere) mit in die Standard-API eingegangen. Alle sind als optionales Packet für Java SE/Java EE erhältlich. Schrittweise findet JMX Einzug in Java EE-Container, um Teile über eine standardisierte API zu überwachen. JMX wurde jedoch für die Java SE entwickelt, bevor es die Java EE gab, sodass JMX auch für alle Entwickler interessant sind, die keine Enterprise-Applikationen entwickeln. Software aus dem Java EE-Umfeld – darunter Tomcat, JBoss, IONA, BEA WebLogic – nutzt JMX, um zum Beispiel Performance-Statistiken zu liefern oder Konfigurationen vorzunehmen.