Usando script wsadmin com o Java Management Extensions (JMX)
Java™ Management Extensions (JMX) é uma estrutura que fornece uma maneira padrão de expor recursos Java, por exemplo, servidores de aplicativos, em uma infraestrutura de gerenciamento de sistemas. Utilizando a estrutura JMX, um fornecedor pode implementar funções, como listar as definições de configuração e editar as definições. Essa estrutura também inclui uma camada de notificação que os aplicativos de gerenciamento podem utilizar para monitorar eventos, como a inicialização de um servidor de aplicativos.
Recursos Principais do JMX
Os recursos-chave da implementação do WebSphere Application Server do JMX incluem:
- Todos os processos que executam o agente JMX.
- Toda a administração de tempo de execução que é executada por meio de operações JMX.
- Os conectores utilizados para conectar um agente JMX a um aplicativo de gerenciamento
remoto ativado por JMX. Os seguintes conectores são suportados:
- Conector SOAP JMX
- Conector JMX RMI-IIOP (Chamada de Método Remoto sobre o RMI-IIOP (Internet Inter-ORB Protocol) da Interface de Programação de Aplicativos Remota JMX (JSR 160) (o conector JSR160RMI)
- Conector JMS RMI-IIOP (Remote Method Invocation over the Internet Inter-ORB Protocol)
- Inter-Process Communications (IPC)
- Os adaptadores de protocolo que fornecem uma visualização de gerenciamento do agente JMX através de um determinado protocolo. Aplicativos de gerenciamento que conectam-se a um adaptador de protocolos geralmente são específicos de um determinado protocolo.
- A capacidade de consultar e atualizar as definições de configuração de um objeto de tempo de execução.
- A capacidade de carregar, inicializar, alterar e monitorar componentes e recursos de aplicativos durante o tempo de execução.
Arquitetura JMX
A arquitetura JMX é estruturada em três camadas:
- Camada de instrumentação - Dita como recursos podem ser agrupados em Java beans especiais chamados de MBeans (Managed Beans).
- Camada do agente - Formada pelo servidor e pelos agentes do MBean, que
oferecem uma infra-estrutura de gerenciamento. Os serviços que são implementados incluem:
- Monitoramento
- Notificação de eventos
- Cronômetros
- Camada de gerenciamento - Define como aplicativos de gerenciamento externos podem interagir com as camadas subjacentes em relação aos protocolos, APIs, e assim por diante. Essa camada usa uma implementação da especificação de serviços distribuídos (JSR-077), que é parte da especificação Java 2 Platform, Enterprise Edition (J2EE).
A arquitetura em camadas do JMX é resumida na figura a seguir:

Administração Distribuída de JMX
A figura a seguir mostra como a arquitetura JMX se encaixa na topologia de administração distribuída geral de um ambiente do WebSphere Application Server, Network Deployment:

Os pontos chave dessa arquitetura de administração distribuída incluem:
- Os MBeans internos locais para o registro da JVM (Java Virtual Machine) com o servidor MBean local.
- Os MBeans externos têm um proxy local para seu servidor MBean. O
proxy registra-se no servidor MBean local. Utilizando o proxy do MBean, o servidor MBean local pode transmitir a mensagem para um servidor MBean externo localizado em:
- Um agente de nó que tenha um proxy de MBean para todos os servidores em seu nó. Os proxies do MBean de outros nós não são utilizados.
- O gerenciador de implementação tem proxies de MBean para todos os agentes de nó da célula.
MBeans JMX
O produto fornece vários MBeans, cada um deles com diferentes funções e operações disponíveis. Por exemplo, um MBean do servidor de aplicativo pode expor operações, como iniciar e parar. Um MBean de aplicativo pode expor operações, como instalar e desinstalar. Alguns cenários de uso de JMX que podem ser encontrados incluem:
- Programas externos que são gravados para controlar o tempo de execução do WebSphere Application Server, Network Deployment e seus recursos do WebSphere acessando programaticamente a API do JMX.
- Aplicativos de terceiros que incluem MBeans de JMX personalizados como parte do código implementado, suportando o gerenciamento de componentes e recursos do aplicativo da API de JMX.
O exemplo a seguir ilustra como obter o nome de um MBean específico:
Utilizando Jacl:
set am [$AdminControl queryNames type=ApplicationManager,process=server1,*]
Utilizando Jython:
am = AdminControl.queryNames('type=ApplicationManager,process=server1,*')
Cada MBean de tempo de execução do WebSphere Application Server pode ter atributos, operações e notificações. A documentação completa para cada MBean que é fornecido com o produto está disponível neste centro de informações em .
Benefícios de JMX
A utilização de JMX para funções de gerenciamento em WebSphere Application Server fornece os seguintes benefícios:
- Ativa o gerenciamento de aplicativos Java sem investimento significativo.
- Depende de um servidor de objeto gerenciado a partir do núcleo que atua como um agente de gerenciamento.
- Os aplicativos Java podem incorporar um servidor de objetos gerenciados e disponibilizar algumas de suas funcionalidades como um ou vários MBeans que estão registrados com o servidor de objetos.
- Fornece uma arquitetura de gerenciamento escalável.
- Cada serviço de agente JMX é um módulo independente que pode ser conectado ao agente de gerenciamento.
- A API é extensível, permitindo que novos recursos do WebSphere Application Server e do aplicativo customizado sejam facilmente incluídos e expostos por meio dessa interface de gerenciamento.
- Integra soluções de gerenciamento existentes.
- Cada processo é auto-suficiente quando se trata do gerenciamento de seus recursos. Não existe nenhum ponto central de controle. Na verdade, um cliente de gerenciamento ativado por JMX pode ser conectado a qualquer processo gerenciado e interagir com os MBeans hospedados por esse processo.
- JMX fornece uma única abordagem simples para todo o domínio para o gerenciamento de sistemas. Processos separados interagem através de proxies de MBean que suportam um único cliente de gerenciamento para navegar de forma transparente por uma rede de processos gerenciados.
- Define as interfaces que são necessárias somente para o gerenciamento.
- Fornece uma API padrão para expor recursos administrativos e do aplicativo para ferramentas de gerenciamento.