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 verwendet eine dreistufige Architektur:
- Das Sonde Ebene - auch die genannt Instrumentierung Ebene - enthält die Sonden (genannt Mbeans) Instrumentierung die Ressourcen
- Das Agent Level oder MbeanServer - der Kern von JMX. Es fungiert als Vermittler zwischen der MBEAN und den Anwendungen.
- 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:
- Es ist keine nicht statische innere Klasse.
- Es ist eine konkrete Klasse oder wird kommentiert
@Dekorateur
. - 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:
- JMX wird von Java unterstützt Anwendungsserver wie OpenCloud Rhino Application Server [1], Jboss, Jonas, WebSphere Application Server, Weblogik, SAP NetWeaver Application Server, Oracle Application Server 10g und Sun Java System Application Server.
- JMX wird vom ungebundenen Verzeichnisserver, dem Verzeichnis -Proxy -Server und dem Synchronisierungsserver unterstützt.[10]
- Systemmanagement Tools, die das Protokoll unterstützen Empirix OneSight, Grundarbeitsmonitor, Hyperisch, HP OpenView, IBM Director, ITRS -Genos, Nimsoft NMS, OpenNMS,[11] Zabbix, Zenoss -Kern und Zyrion, SolarWinds, UPTIME -Infrastrukturmonitorund Logicmonitor.[12]
- JMX wird auch von unterstützt von Servlet Container wie zum Beispiel Apache tomcat.[13] & Jetty (Webserver)
- Mx4j [2] ist Open Source JMX für Enterprise Computing.
- Janage [3] ist eine Open-Source-Unternehmens-JMX-Konsole mit Web- und Befehlszeilenschnittstellen.
- MC4J [4] ist eine Open -Source -visuelle Konsole zum Anschließen mit Servern, die JMX unterstützen
- snmpadaptor4j [5] ist eine Open Source, die über das SNMP -Protokoll einen einfachen Zugang zu MBeans bietet.
- JVMTOP ist ein leichtes Open-Source-JMX-Überwachungstool für die Befehlszeile
- Prometheus Kann JMX -Daten über den JMX -Exporteur einnehmen[14] Dies enthüllt Metriken im Prometheus -Format.
Siehe auch
Verweise
- ^ "Überblick über das Java Dynamic Management Kit". docs.oracle.com. Abgerufen 12. Januar, 2021.
- ^ JSR 003: JAVATM -Management -Erweiterungen (JMXTM) Spezifikation
- ^ JSR 255: Javatm Management Extensions (JMXTM) Spezifikation, Version 2.0
- ^ JSR 160: Javatm Management Extensions (JMX) Remote -API
- ^ JSR 262: Web Services Connector für Java Management Extensions (JMX) Agenten
- ^ Verwenden von JConsole zur Überwachung von Anwendungen
- ^ "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.
- ^ Java Management Extensions (JMX) - Best Practices
- ^ "Mlet (Java 2 Plattform SE 5.0)". Sun Microsystems. Abgerufen 2008-06-22.
- ^ Ungebundener Korp. Archiviert 2012-03-06 bei der Wayback -Maschine
- ^ "Heim".
- ^ "JMX -Datenerfassung". www.logicmonitor.com. Abgerufen 2020-11-20.
- ^ Apache Tomcat 6.0: Überwachung und Verwaltung von Tomcat (Tomcat -Handbuch)
- ^ "JMX Exporteur". GitHub. 14. Februar 2022.
Weitere Lektüre
Artikel
- "Aktivierung von Komponentenarchitekturen mit JMX"Von Marc Fleury und Juha Lindfors
- "Einführung einer neuen Lieferanten-neutralen J2EE-Management-API"Von Andreas Schaefer
- "Java im Managementbereich" von Max Goff 1999
- JMX/JBOSS - Das Mikrokernel Entwurf
- "Verwalten Sie Ihre JMX-fähigen Anwendungen mit JManage 1.0"Von Rakesh Kalra 16. Januar 2006
- "Verwalten von J2EE -Systemen mit JMX und Junit"Von Lucas McGregor
- Sun Java -Übersicht über die Überwachung und das Management
- Das Java ee 6 Tutorial: Über verwaltete Bohnen
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
- JMX 1.4 (JMX 1.4, Teil von Java 6)
- JMX bei Jboss.com
- JMX auf www.oracle.com
- JSR 255 (JMX 2.0)
- JSR 3 (JMX 1.0, 1.1 und 1.2)