JMX e MBeans com o Spring Framework

O WebSphere Application Server Versão 6.1 e mais recente suporta Spring Java™ Management Extensions (JMX) MBeans.

JMX e MBeans

Para usar o suporte para Spring JMX MBeans, você deve registrar o JMX MBeans com a instância MBeanServer do gerenciador de cointêineres no servidor de aplicativos. Se você não especificar uma propriedade do servidor para o MBean, o objeto MBeanExporter tenta detectar uma instância MBeanServer que esteja executando. Portanto, para um aplicativo que executa no servidor de aplicativos, o Spring Framework localizaria a instância MBeanServer do contêiner.

Não use a classe MBeanServerFactory para instanciar uma instância MBeanServer e depois injetar essa instância no objeto MBeanExporter. Também, não use as classes ConnectorServerFactoryBean ou JMXConnectorServer do Spring Framework para expor a instância MBeanServer local a clientes por meio da abertura de portas JMX de entrada.

Registrando Spring MBeans no Servidor de Aplicativos

Quando um MBean é registrado no servidor de aplicativos, ele é identificado por um nome de objeto totalmente qualificado, javax.management.ObjectName. Exemplo:
WebSphere:cell=99T73GDNode01Cell,name=JmxTestBean,node=99T73GDNode01,process=server1,
type=JmxTestBeanImpl 
Quando um MBean tem o registro removido, ele deve ser consultado usando o mesmo nome totalmente qualificado, em vez de apenas a propriedade nome do MBean. A melhor maneira de gerenciar isso é implementar a interface org.springframework.jmx.export.naming.ObjectNamingStrategy. A interface ObjectNamingStrategy encapsula a criação de objetos ObjectName, e é usada pela classe MBeanExporter para obter ObjectNames quando os beans são registrados. É possível incluir a instância ObjectNamingStrategy ao bean que você registra para que o MBean tenha seu registro removido adequadamente quando o aplicativo for desinstalado. Exemplo
<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 e Notificações

Para usar notificações, é aconselhável definir totalmente o nome do objeto para um MBean, porque o MBean é identificado por um nome de objeto totalmente qualificado quando ele é registrado no WebSphere Application Server. Exemplo
<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]

Spring JMX e Métodos de Múltiplas Chamadas emz/OS

O WebSphere Application Server Versão 6.1 ou mais recente suporta Spring JMX em servidores de região com múltiplos servants. Porém, as opções de implementação são limitadas porque você não pode usar o Spring Framework para especificar campos específicos da plataforma no descritor MBean. O servidor de aplicativos assume como padrão a estratégia unicall para que somente uma instância do MBean, em uma região de servante indeterminada única, seja solicitada a executar um pedido. Para alguns cenários, este comportamento é adequado, mas muito frequentemente, um aplicativo precisa declarar uma combinação de métodos multicall e unicall, e incluir alguma lógica de agregação.


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cspr_data_access_tran2
Nome do arquivo: cspr_data_access_tran2.html