JMX y MBeans con Spring Framework

WebSphere Application Server Versión 6.1 y posteriores soportan MBeans de JMX (Java™ Management Extensions) de Spring.

JMX y MBeans

Para utilizar el soporte de los MBeans JMX de Spring, debe registrar los MBeans JMX en la instancia MBeanServer del gestor de contenedor del servidor de aplicaciones. Si no especifica una propiedad de servidor para el MBean, el objeto MBeanExporter intenta detectar una instancia MBeanServer que esté en ejecución. Por consiguiente, para una aplicación que se ejecuta en el servidor de aplicaciones, Spring Framework localizará la instancia MBeanServer del contenedor.

No utilice la clase MBeanServerFactory para crear una instancia de MBeanServer y, a continuación, inyecte esa instancia en el objeto MBeanExporter. Asimismo, no utilice las clases ConnectorServerFactoryBean o JMXConnectorServer de Spring Framework para mostrar la instancia MBeanServer local a los clientes abriendo puertos JMX de entrada.

Registro de MBeans de Spring en el servidor de aplicaciones

Cuando se registra un MBean en el servidor de aplicaciones, éste se identifica por un nombre de objeto totalmente calificado, javax.management.ObjectName. Por ejemplo:
WebSphere:cell=99T73GDNode01Cell,name=JmxTestBean,node=99T73GDNode01,process=server1,
type=JmxTestBeanImpl 
Cuando se anula el registro de un MBean, éste se debe buscar utilizando el mismo nombre totalmente calificado, en lugar de sólo la propiedad de nombre del MBean. La mejor manera de gestionar esto consiste en implementar la interfaz org.springframework.jmx.export.naming.ObjectNamingStrategy. La interfaz ObjectNamingStrategy encapsula la creación de objetos ObjectName y la utiliza la clase MBeanExporter para obtener ObjectNames cuando se registran los beans. Puede añadir la instancia ObjectNamingStrategy al bean que registra para que se anule el registro de MBean correctamente cuando se desinstale la aplicación. Por ejemplo:
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"
  lazy-init="false">
  <property name="beans">
    <map> <entry key="JmxTestBean" value-ref="testBean" /> </map>
  </property>
  <property name="namingStrategy" ref="websphereNamingStrategy" />
...
</bean>

MBeans y notificaciones

Para utilizar notificaciones, es aconsejable definir el nombre de objeto para un MBean por completo, porque el MBean se identifica por un nombre de objeto totalmente calificado cuando se registra en WebSphere Application Server. Por ejemplo:
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" 
  lazy-init="false">
  <property name="beans">
    <map>
      <entry key="JmxTestBean" value-ref="testBean" />
    </map>
  </property>
  <property name="namingStrategy" ref="websphereNamingStrategy" />
  <property name="notificationListenerMappings">
    <map>
      <entry key="WebSphere:cell=99T73GDNode01Cell, name=JmxTestBean,
						node=99T73GDNode01, process=server1, type=JmxTestBeanImpl">
        <bean class="client.MBeanListener" />
      </entry>
    </map>
  </property>
</bean>
[z/OS]

Métodos de varias llamadas y JMX de Spring en z/OS

WebSphere Application Server Versión 6.1 o posterior soporta JMX de Spring en servidores de región de varios sirvientes. Sin embargo, las opciones de despliegue son limitadas porque no puede utilizar Spring Framework para especificar campos específicos de plataforma en el descriptor MBean. El servidor de aplicaciones toma de manera predeterminada la estrategia de una sola llamada para que sólo se le solicite a una instancia del MBean, en una región individual de sirviente indeterminada, que ejecute una solicitud. Para algunos escenarios este comportamiento es adecuado, pero normalmente una aplicación necesita declarar una combinación de los métodos de varias llamadas y de una sola llamada e incluir lógica de agregación.


Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cspr_data_access_tran2
File name: cspr_data_access_tran2.html