Jconsole – ein zentrales J2SE-Tool

Und schließlich ist da noch die MBeans-Registerkarte. Hier wird es erst richtig interessant. MBeans sind das Herzstück des JMX-Frameworks und ermöglichen die Verwaltung und Überwachung eigener Anwendungen. Für jede Klasse, die man verwalten möchte, erstellt man ein zugehöriges MBean, das die Verwaltungsschnittstelle beschreibt. Beim WatchMe-Beispiel haben wir eine Klasse, die überwacht werden muss, WatchMeBean.java. Dies ist nur eine einfache Klasse mit einem Zähler, der jede Sekunde oder beim Aufruf der Methode incCount inkrementiert wird. Es gibt auch eine Reset-Methode, die den Zähler wieder auf Null setzt. WatchMeBean verfügt auch über einen Message-String. Für die Verwaltung soll der aktuelle Wert des Zählers, die Message sowie die Möglichkeit zum Zurücksetzen des Zählers bereitgestellt werden.

Hierfür benötigt man ein MBean wie das folgende:

Dies ist eher ein Interface als eine Klasse und verkapselt die Methoden, die JMX als Management-API betrachten soll. Das MBean-Interface muss denselben Namen wie die zu verwaltende Klasse haben (mit korrekter Groß- und Kleinschreibung), wobei „MBean“ angehängt wird. Das MBean um die Klasse WatchMeBean zu überwachen heißt also WatchMeBeanMBean. Darauf sollte man achten, wenn man eine Anwendung mit MBeans refaktoriert. Ein einfaches MBean folgt den bekannten JavaBean-Namensgebungskonventionen mit get- und set-Methoden.

MBeans müssen beim MBeanServer registriert werden. Dies ist ein Agent, der sich um die externen Clients kümmert, die mit dem JMX-Framework verbunden sind. In WatchMe.java wird dies wie folgt eingestellt:

Der Aufruf von getPlatformMBeanServer() erzeugt den MBeanServer (und gibt ihn zurück), der gleichzeitig für die JVM-Speicher- und Thread-Informationen verantwortlich ist, von denen oben bereits die Rede war. Sobald der MBeanServer vorhanden ist, kann man bei ihm eine Klassen-Instanz registrieren. Zuerst erstellt man das WatchMeBean und startet es in einem eigenen Thread:

Eventuell hat man mehrere Instanzen derselben Klasse, die man verwalten möchte. Um zwischen diesen zu unterscheiden, erstellt man einen ObjectName. Dieser besteht aus zwei Teilen, einer Domäne sowie einer Liste von Attributen. Hier ist die Domäne „WatchMeBean“ und ein Namens-Attribut, das auf „watchme“ gesetzt ist. Diese Namen tauchen später noch einmal auf. Sobald man über einen ObjectName verfügt, kann man das Bean beim MBeanServer registrieren:

Bei der Registrierung dient Reflexion dazu, das entsprechende WatchMeBeanMBean zu identifizieren (weshalb es wichtig ist, den Namen des MBeans korrekt anzugeben). Damit hat man ein überwachbares Bean.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

2 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

3 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

3 Tagen ago

Gefährliche Anzeigen für Passwortmanager Bitwarden verbreiten Malware

Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…

3 Tagen ago

Public Cloud: Gartner erwartet 2025 weltweite Ausgaben von 723 Milliarden Dollar

Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.

4 Tagen ago

iPhone 15 ist bestverkauftes Smartphone im dritten Quartal

Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…

4 Tagen ago