Beispiele für die Registrierung von MBeans

Eine Anwendung kann ihre eigenen MBean-Instanzen in Liberty registrieren. Diese MBean-Instanzen können dann von anderen Anwendungen oder externen Administratoren verwendet werden.

Jede Anwendung kann eine MBean über eine MBeanServer-Instanz registrieren. Angenommen, eine Anwendung enthält eine Klasse mit dem Namen org.example.Example, die die Schnittstelle org.example.ExampleMBean implementiert, in der einige Attribute und Operationen definiert sind. Wie im folgenden Beispiel kann die Anwendung die Klasse Example einfach instanziieren und dann mit einem eindeutigen ObjectName registrieren. Wenn der ausgewählte ObjectName bereits im Gebrauch ist, wird eine Ausnahme des Typs javax.management.InstanceAlreadyExistsException gemeldet.
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.example.Example;

...

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
Object mbean = new Example();
ObjectName name = new ObjectName("org.example.MyApplication:name=Example");
mbs.registerMBean(mbean, name);
Außerdem kann eine Anwendung eine MBean registrieren, die java.lang.ClassLoader erweitert und den Zugriff auf eine Reihe von MBean-Implementierungsklassen ermöglicht. Anschließend können Sie einen beliebigen anderen JMX-Client (lokal oder fern) verwenden, um MBeans zu erstellen und zu registrieren, die von der Anwendung bereitgestellt werden. Angenommen, die Anwendung hat eine MBean-Klasse org.example.ApplicationClassLoader, die:
  • eine leere Schnittstelle org.example.ApplicationClassLoaderMBean implementiert,
  • java.lang.Classloader erweitert und
  • den Zugriff auf die Implementierungsklasse der MBean org.example.Example ermöglicht.
Die Anwendung kann eine Instanz von ApplicationClassLoader wie folgt registrieren, um die MBean Example anderen JMX-Clients zur Verfügung zu stellen:
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.example.ApplicationClassLoader;

...

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
Object classLoader = new ApplicationClassLoader();
ObjectName name = new ObjectName("org.example.MyApplication:name=ClassLoader");
mbs.registerMBean(classLoader, name);
Jeder JMX-Client kann eine Example-Instanz erstellen. Im folgenden Beispiel wird angenommen, dass die Variable mbs eine Instanz von MBeanServer oder MBeanServerConnection ist. Nähere Informationen hierzu finden Sie unter Mit JMX-Beans in Liberty arbeiten.
import javax.management.ObjectName;

...

ObjectName loaderName = new ObjectName("org.example.MyApplication:name=ClassLoader");
ObjectName exampleName = new ObjectName("org.example.MyApplication:name=Example");
mbs.createMBean("org.example.Example", exampleName, loaderName);

Bei Bedarf können Sie andere Formen der Methode MBeanServer.createMBean verwenden, um die MBean mithilfe von Konstruktoren zu erstellen, die keine Standardkonstruktoren sind.

Weitere Informationen zur Managementschnittstelle finden Sie im Java-API-Dokument für Liberty. Die ausführliche Java-API-Dokumentation für jede Liberty-API finden Sie im Abschnitt Programmierschnittstellen (APIs) im online verfügbaren IBM Knowledge Center und darüber hinaus als separate .zip-Datei in einem der Javadoc-Unterverzeichnisse des Verzeichnisses ${wlp.install.dir}/dev.


Symbol das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=rwlp_mbeans_registration
Dateiname: rwlp_mbeans_registration.html