Java -Management -Erweiterungen

Java -Management -Erweiterungen (JMX) ist ein Java Technologie, die Tools zum Verwalten und Überwachen liefert Anwendungen, Systemobjekte, Geräte (wie z. Drucker) und serviceorientierte Netzwerke. Diese Ressourcen werden durch Objekte dargestellt, die als MBeans bezeichnet werden (für Managierte Bohne). In der API, Klassen kann dynamisch geladen und instanziiert werden. Das Verwalten und Überwachen von Anwendungen kann mit dem Java Dynamic Management Kit entwickelt und entwickelt werden.[1]

JSR 003[2] des Java Community -Prozess Definierte JMX 1.0, 1.1 und 1.2. JMX 2.0 wurde unter JSR 255 entwickelt, aber dieser JSR wurde anschließend zurückgezogen.[3] Die JMX Remote API 1.0 für die Remote -Verwaltung und -überwachung wird durch JSR 160 angegeben.[4] Eine Erweiterung der JMX Remote -API für Webdienste wurde unter JSR 262 entwickelt.[5]

Früh von der adoptiert J2EE Community, JMX war ein Teil von J2SE Seit Version 5.0. "JMX" ist eine Marke von Oracle Corporation.

Die Architektur

JMX Architektur

JMX verwendet eine dreistufige Architektur:

  1. Das Sonde Ebene - auch die genannt Instrumentierung Ebene - enthält die Sonden (genannt Mbeans) Instrumentierung die Ressourcen
  2. Das Agent Level oder MbeanServer - der Kern von JMX. Es fungiert als Vermittler zwischen der MBEAN und den Anwendungen.
  3. Das Fernverwaltung Durch Level können Remote -Anwendungen über Anschlüsse und Adapter auf den MbeanServer zugreifen. Ein Stecker bietet mit verschiedenen Kommunikation einen vollständigen Remote -Zugriff auf die MbeanServer -API (RMI, IIOP, JMS, WS-* …), Während ein Adapter die API an ein anderes Protokoll anpasst (SNMP,…) Oder zu webbasierten GUI (Html/Http, Wml/Http,…).

Anwendungen können generische Konsolen sein (wie z. Jconsole[6] und MC4J[7]) oder domänenspezifische (Überwachung) Anwendungen. Externe Anwendungen können mit den MBeans mithilfe von JMX -Steckverbindern und Protokolladaptern interagieren. Anschlüsse dienen dazu, einen Agenten mit einer Remote-JMX-fähigen Verwaltungsanwendung zu verbinden. Diese Form der Kommunikation umfasst einen Anschluss im JMX -Agenten und einen Connector -Client in der Verwaltungsanwendung.

Protokolladapter bieten eine Verwaltungsansicht des JMX -Agenten über ein bestimmtes Protokoll. Verwaltungsanwendungen, die mit einem Protokolladapter eine Verbindung herstellen, sind in der Regel spezifisch für das angegebene Protokoll.

Bewirtschaftete Bohnen

A Managierte Bohne - manchmal einfach als als als bezeichnet Mbean - ist eine Art von Art von Javabäer, hergestellt mit Abhängigkeitsspritze. Managierte Bohnen werden besonders in der Java Management Extensions -Technologie verwendet. Mit Java EE 6 bietet die Spezifikation jedoch eine detailliertere Bedeutung einer verwalteten Bohne.

Die Mbean repräsentiert eine Ressource in der Java virtuelle Maschine, wie eine Anwendung oder ein technischer Java EE -Dienst (Transaktionsmonitor, JDBC -Treiber usw.). Sie können zum Sammeln von Statistiken zu Bedenken wie Leistung, Ressourcenverbrauch oder Problemen (Pull) verwendet werden. zum Erhalten und Einstellen von Anwendungskonfigurationen oder Eigenschaften (Push/Pull); und Benachrichtigung von Ereignissen wie Fehlern oder Zustandsänderungen (Push).

Java EE 6 sieht vor, dass eine verwaltete Bohne eine Bohne ist, die von einer Java -Klasse implementiert wird, die als Bohnenklasse bezeichnet wird. Eine Java-Klasse auf höchstem Niveau ist eine verwaltete Bohne, wenn sie von einer anderen Java EE-Technologiespezifikation als verwaltete Bohne definiert ist (zum Beispiel die Javaserver Gesichter Technologiespezifikation) oder wenn sie alle folgenden Bedingungen erfüllt:

  1. Es ist keine nicht statische innere Klasse.
  2. Es ist eine konkrete Klasse oder wird kommentiert @Dekorateur.
  3. Es wird nicht mit einer EJB-Komponenten-definierenden Annotation kommentiert oder als EJB-Bohnenklasse in deklariert ejb-jar.xml.

Es ist keine besondere Erklärung wie eine Anmerkung erforderlich, um eine verwaltete Bohne zu definieren.

Eine Mbean kann den MbeanServer über ihre internen Änderungen (für die Attribute) informieren, indem sie die implementieren javax.management.notificationemitter. Die Anwendung, die an den Änderungen der MBEAN interessiert ist, registriert einen Zuhörer (javax.management.notificationListener) zum MbeanServer. Beachten Sie, dass JMX nicht garantiert, dass die Zuhörer alle Benachrichtigungen erhalten.[8]

Typen

Es gibt zwei grundlegende Arten von MBEAN:

  • Standard -Mbeans Implementieren Sie eine Geschäftsschnittstelle mit Setzen und Gettern für die Attribute und Operationen (d. H. Methoden).
  • Dynamische Mbeans Implementieren Sie die javax.management.dynamicmbean Schnittstelle, die eine Möglichkeit bietet, die Attribute und Operationen aufzulisten und die Attributwerte zu erhalten und festzulegen.

Zusätzliche Typen sind Offene Mbeans, Model MBeans und Überwachen Sie MBeans. Offene Mbeans sind dynamische MBeans, die auf den grundlegenden Datentypen angewiesen sind. Sie sind selbsterklärend und benutzerfreundlicher. Model MBeans sind dynamische MBeans, die während der Laufzeit konfiguriert werden können. Eine generische MBEAN -Klasse wird auch zur dynamischen Konfiguration der Ressourcen während der Programmlaufzeit bereitgestellt.

Eine mxbean (Plattform Mbean) ist eine besondere Art von Mbean, die ansieht Java virtuelle Maschine Subsysteme wie Müllsammlung, JIT -Zusammenstellung, Speicherpools, Multi-Threading, etc.

Ein Mlet (Management Applet) ist ein Versorgungsunternehmen, das Mbeans in einem MbeanServer von einem lädt, instanziiert und registriert Xml Bezeichnung. Das Format des XML -Deskriptors lautet:[9]

     [arglist]   

Die Unterstützung

JMX wird auf verschiedenen Ebenen von verschiedenen Anbietern unterstützt:

Siehe auch

Verweise

  1. ^ "Überblick über das Java Dynamic Management Kit". docs.oracle.com. Abgerufen 12. Januar, 2021.
  2. ^ JSR 003: JAVATM -Management -Erweiterungen (JMXTM) Spezifikation
  3. ^ JSR 255: Javatm Management Extensions (JMXTM) Spezifikation, Version 2.0
  4. ^ JSR 160: Javatm Management Extensions (JMX) Remote -API
  5. ^ JSR 262: Web Services Connector für Java Management Extensions (JMX) Agenten
  6. ^ Verwenden von JConsole zur Überwachung von Anwendungen
  7. ^ "Das MC4J -Projekt erstellt Management -Software für J2EE -Anwendungsserver und andere Java -Anwendungen". Archiviert von das Original am 2007-03-23. Abgerufen 2006-08-27.
  8. ^ Java Management Extensions (JMX) - Best Practices
  9. ^ "Mlet (Java 2 Plattform SE 5.0)". Sun Microsystems. Abgerufen 2008-06-22.
  10. ^ Ungebundener Korp. Archiviert 2012-03-06 bei der Wayback -Maschine
  11. ^ "Heim".
  12. ^ "JMX -Datenerfassung". www.logicmonitor.com. Abgerufen 2020-11-20.
  13. ^ Apache Tomcat 6.0: Überwachung und Verwaltung von Tomcat (Tomcat -Handbuch)
  14. ^ "JMX Exporteur". GitHub. 14. Februar 2022.

Weitere Lektüre

Artikel

Bücher

  • Benjamin G Sullins, Mark B Whipple: JMX in Aktion: Sie erhalten auch Ihre erste JMX -Anwendung in Betrieb, Manning Publications Co. 2002, ISBN1-930110-56-1
  • J. Steven Perry: Java -Management -Erweiterungen, O'Reilly, ISBN0-596-00245-9
  • Jeff Hanson: Verbinden von JMX -Clients und Servern: Verständnis der Java -Management -Erweiterungen, Apress L. P., ISBN1-59059-101-1
  • Marc Fleury, Juha lindfors: JMX: Verwaltung von J2EE mit Java -Management -Erweiterungen, Sams Publishing, ISBN0-672-32288-9

Externe Links