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 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 API para cada API Liberty se detalla en la sección Interfaces de programación (API) del IBM Knowledge Center en línea y, también, está disponible como un archivo .zip separado en uno de los subdirectorios javadoc del directorio ${wlp.install.dir}/dev.


Icono que indica el tipo de tema Tema de referencia



Icono de indicación de fecha y hora Última actualización: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=rwlp_mbeans_registration
Nombre de archivo:rwlp_mbeans_registration.html