Ejemplos de registro de MBeans

Una aplicación puede registrar sus propias instancias de MBean en Liberty. Esa instancia de MBean la puedes utilizar otras aplicaciones o los administradores externos.

Cualquier aplicación puede registrar un MBean utilizando una instancia de MBeanServer. Supongamos que una aplicación contiene una clase que se llama org.example.Example que implementa la interfaz org.example.ExampleMBean, que define algunos atributos y operaciones. Como en el ejemplo siguiente, la aplicación puede simplemente crear una instancia de la clase Example y, a continuación, registrarla utilizando un ObjectName exclusivo. Si el ObjectName elegido ya se está utilizando, se notifica una javax.management.InstanceAlreadyExistsException.
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);
Asimismo, una aplicación puede registrar un MBean que amplía java.lang.ClassLoader y proporciona acceso a un número cualquiera de clases de implementación de MBean. A continuación, puede utilizar cualquier otro cliente JMX, local o remoto, para crear y registrar los MBeans proporcionados por la aplicación. Por ejemplo, supongamos que la aplicación tiene una clase de MBean org.example.ApplicationClassLoader que realiza las tareas siguientes:
  • Implementa un org.example.ApplicationClassLoaderMBean de interfaz vacía
  • Amplía java.lang.Classloader y
  • Proporciona acceso a la clase de implementación de MBean org.example.Example
La aplicación puede registrar una instancia de ApplicationClassLoader para que el MBean Example esté disponible para otros clientes JMX como se indica a continuación:
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);
Cualquier cliente JMX puede crear una instancia de Example. El ejemplo siguiente asume que la variable mbs es una instancia de MBeanServer o MBeanServerConnection. Consulte Cómo trabajar con los MBeans de JMX en Liberty.
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);

Si es necesario, puede utilizar otros formatos del método MBeanServer.createMBean para crear el MBean utilizando constructores distintos de los predeterminados.

Para obtener más información sobre la interfaz de gestión, consulte el documento de la API Java para Liberty. La documentación de la API Java para cada API de Liberty se describe detalladamente en la secciónInterfaces de programación (Javadoc) de IBM® Knowledge Center en línea, y también está disponible como un archivo .zip en uno de los subdirectorios javadoc del directorio ${wlp.install.dir}/dev.


Icono que indica el tipo de tema Tema de referencia

Nombre de archivo: rwlp_mbeans_registration.html