JMX- und MBean-Unterstützung
JMX (Java Management Extension) ist ein Framework für die Verwaltung von Applikationen und Netzwerken in Java. Mit der JMX-Technologie wird eine gegebene Ressource durch ein oder mehrere Java-Objekte (bekannt als Managed Beans oder MBeans) instrumentiert. Diese MBeans sind in einem MBeans-Server registriert. Durch den MBeans-Server können Ressourcen, die über MBeans freigegeben wurden, von Management-Applikationen (JMX Clients) aufgerufen werden, um:
-
Applikationsparameter während der Laufzeit zu lesen und zu betrachten,
-
statistische Daten bereitzustellen (Performance, Ressourcen-Nutzung, Logs, Fehler etc.),
-
im Fall von Fehlern Benachrichtigungen zu erhalten,
-
wichtige Systemkomponenten zu überwachen.
Intershop Commerce Management bietet eine Reihe von vordefinierten MBeans, die es ermöglichen, System-Monitoring-Daten von JMX-Clients wie dem MX4J-HTTP-Adapter für Tomcat-Anwendungsserver abzurufen und zu verarbeiten. Außerdem bietet Intershop Commerce Management eine einfache Möglichkeit, zusätzliche MBeans zu registrieren, die von Kunden-Cartridges bereitgestellt werden.
MBeans registrieren
Ein Standard-MBean besteht aus einem Java-Interface (mit dem Suffix MBean) und einer Implementierungsklasse. Jede Cartridge registriert die von ihr bereitgestellten MBeans. Registrierte MBeans werden beim Start des Applikationsservers geladen und mit dem MBean-Server des zugrunde liegenden Applikationsserver integriert.
Um MBeans zu registrieren, müssen Sie eine mbeans.properties Datei im classpath-Verzeichnis javasource/resources/<cartridge-name> angeben. Die mbeans.properties-Datei definiert die jeweiligen Zuordnungen von "MBean-Classname" zu "JMX-ObjectName". Das allgemeine Schema für MBean-Einträge lautet:
mbean_class_name=mbean_object_name
java.management.ObjectName
(z. B. domain:key1=value1, key2=value2
) entsprechen. Das folgende Beispiel zeigt den jeweiligen Konfigurationseintrag für den LoggerAdministrationMBean
, der von der core
-Cartridge bereitgestellt wird.com.intershop.beehive.core.capi.mbean.LoggingAdmin=com.intershop.enfinity:
name=com.intershop.beehive.core.capi.mbean.LoggerAdministrationMBean,
type=AdministrationMBean
Sie können MBeans anderer Cartridges ersetzen, indem Sie ihren Namen einer anderen Implementierungsklasse zuordnen. Die Lade-Reihenfolge der Cartridges entscheidet, welcher MBean letztlich registriert wird. Die zuletzt geladene Cartridge gewinnt.
Java VisualVM und JConsole
JMX Support
-Einstellungen auf. Notieren Sie sich die Portnummer, da Sie sie zum Einrichten der JMX-Verbindung für JConsole und Java VisualVM benötigen. Dadurch wird die JMX-Unterstützung für alle Java-Anwendungen auf einem einzigen Tomcat-Server innerhalb Ihrer Intershop Commerce Management-Installation aktiviert.Hier befinden sich die Registerkarten Overview, Monitor, Threads, Sampler und MBeans. Eine Beschreibung der einzelnen Registerkarten ist nachfolgend aufgeführt:
- Übersicht
Hier sehen Sie die Systemeigenschaften sowie die virtuelle Maschine, auf der Ihre Anwendung läuft, und das Java-Stammverzeichnis, in dem sich die Anwendung befindet.
- Monitor
Hier sehen Sie Speicher und Leistung, CPU-Auslastung, geladene Klassen und Threads.
-
Threads
Diese Registerkarte öffnet sich mit einer Ansicht, die alle Threads (All Threads) auf einer Zeitachse enthält. Hier können Sie einen Thread-Dump erstellen, um ihn zu speichern und später zu analysieren. Die Drop-Down-Liste ermöglicht es Ihnen, All, Live, Finished und Selected Threads der Applikation anzuzeigen.
-
Sampler
Sampler liefert Ihnen ein Profil Ihrer Applikationsperformance. Sie können Diagramme für bestimmte Threads erstellen und die Objekte sehen, die Systemressourcen verbrauchen.
-
MBeans
In dieser Registerkarte können Sie alle auf der Plattform MBeans-Server registrierten MBeans anzeigen. Als Administrator werden Sie sich in erster Linie mit der Überwachung und Durchführung von Operationen für die folgenden Aufgaben befassen:
- Unter
com.intershop.enfinity
können Sie die Attribute ansehen sowie die Applikations-MBeans und die Attribute der Cartridge-MBeans überwachen. Über ClearableCaches können Sie ORM-, Objekt- und PageCache-MBeans anzeigen und Operationen daran durchführen. - Unter
oracle.ucp.admin
undoracle.ucp.admin.UniversalConnectionPoolMBean
können Sie Attribute anzeigen und Operationen an den Oracle-Datenbankpoolverbindungen von Intershop Commerce Management durchführen.
- Unter
Wenn Sie einen MBean auswählen und die Attribute anzeigen, bei denen der Wert fett gedruckt ist, können Sie einen Doppelklick auf den Wert ausführen und er wird als Grafik oder Diagramm angezeigt. Einige Cache-MBeans ermöglichen es Ihnen beispielsweise, die Anzahl der Cache-Treffer für eine bestimmte Ressource anzuzeigen.
Öffnen Sie die JConsole im Intershop Commerce Management-Verzeichnis unter engine\jdk\bin. Führen Sie einen Doppelklick auf jconsole.exe aus. JConsole überwacht automatisch die VM auf dem Tomcat-Server, auf dem die Applikation geöffnet ist. Sie können sich jederzeit mit einem anderen Host verbinden, indem Sie Connection | New Connection wählen und die erforderlichen Informationen eingeben. Die folgende Tabelle listet die Registerkarten und die Monitoring-Optionen auf:
Registerkarte | Monitoring-Schwerpunkt |
---|---|
Overview | Hier sehen Sie die Heap-Speicherauslastung, die geladenen Threads, die geladenen Klassen und die CPU-Auslastungsgrafiken für den Tomcat-Server, auf dem Ihre Applikation läuft. Sie können einen Zeitbereich (12 Stunden, 1 Tag, 7 Tage etc.) aus der Dropdown-Liste (oder durch Rechtsklick auf eines der Objekte) im Anwendungsfenster auswählen. |
Memory | Die Memory-Registerkarte ermöglicht es Ihnen, Diagramme anzuzeigen (ändern Sie die anzuzeigenden Informationen im Dropdown-Menü oben), die den Speicherverbrauch über die Zeit und bestimmte Speicherpools anzeigen. Sie können die Details auch im Fenster "Details" einsehen. |
Threads | Hier sehen Sie aktuell laufende Daemon-Threads, die aktuelle und höchste Anzahl an Daemon-Threads sowie die Gesamtzahl der Applikationsthreads. Wählen Sie den Thread, den Sie anzeigen möchten, im Fenster "Threads" unten rechts im Applikationsfenster aus. Die Garbage Collection ist oben rechts im Applikationsfenster verfügbar. Anmerkung: Die Garbage Collection (GC) ist ein Prozess zur Freigabe von Speicherplatz, der von Objekten genutzt wird, die nicht mehr referenziert werden. Sie kann erhebliche Auswirkungen auf die Leistung haben. Weitere Informationen finden Sie in der Oracle JConsole-Dokumentation.
|
Classes | Zeigt die Anzahl der "Loaded Classes" in Diagrammform für die ausgewählte "Time Range" an. |
VM Summary | In dieser Registerkarte werden die Betriebszeit (Gesamtzeit seit dem Start der Java-VM), die Prozess-CPU (Gesamtzeit der CPU) und die Zeit für die JIT-Kompilierung angezeigt. |
MBeans | Zeigt alle registrierten MBeans an. Wenn Sie einen MBean im Baumdiagramm auswählen, werden auf der rechten Seite seine Attribute, Operationen, Benachrichtigungen und andere Informationen angezeigt. Klicken Sie doppelt auf einen Attributwert, um ein Diagramm des Attributwerts in Abhängigkeit von der Zeit anzuzeigen. |
Beispiel-MBeans in Intershop Commerce Management
Intershop Commerce Management stellt bereits eine Reihe vordefinierter MBeans zur Verfügung, mit denen wichtige Bereiche des Systems mit JMX-Managementanwendungen überwacht werden können. Mit der aktuellen Version sind MBeans in den Cartridges core und monitor enthalten. Die von diesen Cartridges bereitgestellten MBeans sind im Paket com.intershop.beehive.<cartridge_name>.capi.mbean enthalten. In den JavaDocs, die vom Intershop Commerce Management für diese Cartridges installiert wurden (unter <IS.INSTANCE.SHARE>/system/cartridges/<cartridge_name>/release/docs/api), finden Sie Details zu den Attributen und Operationen, die von den MBeans unterstützt werden. Eine Zusammenfassung ist in der folgenden Tabelle enthalten.
Cartridge | MBean-Schnittstelle | Beschreibung |
---|---|---|
core | DatabaseDriverInformation MBean | Treiber (oracle.jdbc.driver.OracleDriver, com.ibm.db2j.jdbc.EmbeddedDriver) Poolgröße, Verbindungszähler |
core | LoggingAdminMBean | Aktivierte Log-Bereiche. Aktionen zum Entfernen oder Hinzufügen von Log-Bereichen. |
core | OracleDataSourceInformation MBean | General data source informationOracle connection cache information |
core | ORMCacheInformationMBean | Allgemeine Informationen zum OR-Mapping-Cache für persistente Objekte. |
core | ORMCacheInformationObject MBean | Informationen zu einzelnen persistenten Objekten (z. B. Anzahl der Instanzen im Cache, Standard-Referenzart etc.) |
core | JobsMBean | Wird verwendet, um Jobs zu bearbeiten. |
core | PipelinesMBean | Wird zum Nachladen von Pipelines über JMX verwendet. |
monitor | ProcessInformationMBean | Prozessinformationen (allgemeine Prozessinformationen, Webfront-Service-Informationen, wichtige Umgebungsvariablen), Ressourcenauslastung (CPU-Auslastung, Prozess-Gesamtgröße, In-Memory-Größe, verwendete System-Threads), Java-VM-Ressourcenauslastung (Gesamt-Heap-Größe, verwendete Heap-Größe), Threads (Thread-Gruppe, Name, Thread-Name, Priorität, Daemon, lebendig), Systemeigenschaften |
monitor | SessionRequestInformation MBean | Sitzungspersistenz aktiviert, Anzahl der aktiven Sitzungen, durchschnittliche Anzahl der Sitzungen pro Tag, Gesamtzahl der Requests etc. |