blob: a9087f46dc3bc8730f9d0b8bb5b5cd7c49a10158 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= Conceitos Básicos sobre Monitoramento do JMX no NetBeans IDE
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Conceitos Básicos sobre Monitoramento do JMX no NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Conceitos Básicos sobre Monitoramento do JMX no NetBeans IDE
O Módulo JMX do NetBeans integra a tecnologia do JMX correto para seu workflow no NetBeans IDE. Este módulo permite que você desenvolva aplicações de gerenciamento, adicione o gerenciamento às aplicações existentes, desenvolva aplicações do gerenciador e monitore o estado da Máquina Virtual.
Este documento foi atualizado para a versão 3.0 do módulo do Assistente JMX, para NetBeans IDE 6.5 e mais recente e em execução no JDK 6 ou JDK 7. Você pode fazer download do módulo JMX do Centro de Atualização.
*Observação:* este documento é uma introdução curta e rápida ao módulo JMX do NetBeans IDE. Para obter informações mais detalhadas, conclua o Tutorial do Módulo JMX link:jmx-tutorial.html[+Adicionando Instrumentação do JMX a uma Aplicação Java+].
Este documento com conceitos básicos fornece uma visão geral das funcionalidades do módulo JMX:
image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0"]
* Assistente para criar MBeans e Gerenciadores do JMX.
* Ações para atualizar MBeans existentes adicionando atributos e operações, implementando a Interface ``MBeanRegistration`` ou a ``NotificationEmitter`` .
* Geração de MBean de uma Classe Java existente.
* Ação para registrar MBeans no Servidor de MBeans da Plataforma Java.
* Capacidade de acionar a console de gerenciamento da Plataforma Java (JConsole).
* Capacidade de Executar e Depurar sua aplicação usando JConsole.
* Aplicação de amostra com base no jogo de Anagramas que mostra como adicionar a potência JMX à sua aplicação.
* Assistente para gerar um arquivo de propriedades de gerenciamento, que permite que você acione uma JVM gerenciável segura.
* Ajuda on-line.
* Tutoriais acessíveis do site link:../../index.html[+netbeans.org+].
== Pré-requisitos
Este tutorial pressupõe que você tenha algum conhecimento básico das tecnologias a seguir ou alguma experiência de programação com elas:
* Tecnologia JMX: link:http://download.oracle.com/javase/6/docs/technotes/guides/jmx/index.html[+ Documentação on-line do JMX+]
* Tecnologia Java: link:http://www.oracle.com/technetwork/java/javase/tech/index.html[+ Visão Geral das Tecnologias Java SE+]
* NetBeans IDE
Você também se beneficiará tendo conhecimento sobrelink:http://download.oracle.com/javase/6/docs/technotes/guides/management/index.html[+ Monitoramento e Gerenciamento da Plataforma Java+]
== Software Necessário para o Tutorial
Para este tutorial, você precisa ter instalado no computador os seguintes softwares:
|===
|Software ou Recurso |Versão Necessária
|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Pacote Java 7.2, 7.3, 7.4, 8.0
|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |versão 7 ou 8
|Plug-in do JMX |Disponível na Central de Atualização do NetBeans
|Plug-in de JConsole |Disponível na Central de Atualização do NetBeans
|===
Para instalar os plug-ins *JMX* e *JConsole*, selecione Ferramentas > Plug-ins e faça download dos módulos do Centro de Atualização do NetBeans.
== Acessando os Assistentes do JMX
Depois de instalar o plug-in JMX e seu projeto ser aberto, você pode acessar o assistente JMX, escolhendo Arquivo > Novo Arquivo (Ctrl-N) e selecionando a categoria JMX. Em seguida, você pode escolher o seguinte:
* *Arquivo de Configuração de Gerenciamento.* Arquivo de propriedades Java padrão para armazenar sua configuração para gerenciamento do JMX, principalmente para conexão remota e segurança.
* *Vários tipos de MBeans do JMX.* Um MBean pode representar um dispositivo, uma aplicação ou qualquer recurso que precisa ser gerenciado. Os MBeans expõem uma interface de gerenciamento: um conjunto de atributos legíveis e/ou graváveis e um conjunto de operações que podem ser chamadas, junto com uma autodescrição. A interface de gerenciamento não é alterada durante todo o ciclo de vida da instância do MBean. Os MBeans também poderão emitir notificações quando determinados eventos definidos ocorrerem. Os MBeans do JMX precisam ser registrados no Servidor MBean.
* *Gerenciador do JMX.* Um Gerenciador do JMX é uma aplicação que se conecta a um Servidor MBean do JMX remoto.
image::images/jmx-newfile.png[title="Assistentes de Novo Arquivo na categoria JMX"]
== Atualizando MBeans
Você pode adicionar atributos e operações em seus MBeans com as ações do menu contextual do JMX, que exibirão uma caixa de diálogo. Seus MBeans também podem implementar a interface ``NotificationEmitter`` .
Para atualizar um MBean, selecione o arquivo Java da classe do MBean na árvore do Projeto e acesse o menu pop-up, clicando com o botão direito do mouse no nó, ou simplesmente clique com o botão direito na janela do editor, na qual seu arquivo Java da classe do MBean está aberto e acesse o menu pop-up JMX.
Estas ações são demonstradas no Exercício 3 do tutorial link:jmx-tutorial.html#Exercise_3[+ Adicionando Instrumentação JMX a uma Aplicação Java+].
== Registrando MBeans
Para se conectar remotamente a seus MBeans e gerenciar sua aplicação, seus MBeans precisam ser registrados no Servidor MBean.
Um Servidor MBean é a parte central principal da tecnologia JMX. Ele mantém referência de todos os MBeans registrados nele, pode enviar notificações do novo registro ou deleção do MBean e pode aceitar conexões remotas para expor atributos e operações de seus MBeans registrados. Se você não estiver familiarizado com Servidor MBean, leia a documentação de API `` link:http://download.oracle.com/javase/6/docs/api/javax/management/MBeanServer.html[+ javax.management.mbeanserver +] `` ,
Iniciando o JDK 5, a Plataforma Java fornece um Servidor MBean default, chamado o Servidor MBean da Plataforma. Ele permite que você monitore a JVM, mas também é possível usá-lo para registrar seu próprio MBean nele. Para obter detalhes sobre o Servidor MBean da Plataforma Java, leia a documentação `` link:http://download.oracle.com/javase/6/docs/api/java/lang/management/ManagementFactory.html[+ java.lang.management.ManagementFactory +]`` da API.
Dependendo de sua lógica, determina o local em seu código de aplicação, no qual você deseja que seus MBeans sejam registrados, geralmente na fase de inicialização de sua classe Principal. Clique com o Botão Direito do Mouse na janela do seu editor no local no qual você deseja que o código de registro do MBean seja gerado, selecione o submenu JMX e, em seguida, a ação "Gerar Registro de MBean...".
Esta ação é demonstrada no Exercício 5 do tutorial link:jmx-tutorial.html#Exercise_5[+ Adicionando Instrumentação JMX a uma Aplicação Java+].
== Implementando e Executando Aplicações Gerenciáveis
JConsole é uma ferramenta gráfica compatível com JMX para monitorar uma máquina virtual Java. A JConsole pode monitorar JVMs locais e remotas e pode ser usada para monitorar e gerenciar aplicações JMX.
Geralmente, o fluxo de trabalho da implementação e execução de aplicações gerenciáveis é o seguinte:
1. Gerar seus MBeans.
2. Adicionar implementação aos seus MBeans
3. Gerar código de registro do MBean.
4. Executar ou depurar seu projeto com JConsole.
Depois de instalar os plug-ins do JMX e da JConsole você verá que os seguintes botões são adicionados à barra de ferramentas. As ações também ficam acessíveis no item de menu Depurar no menu principal.
|===
|Botão |Descrição
|image::images/run-project24.png[title="Botão Executar Projeto Principal com Monitoramento e Gerenciamento"] |Executar Projeto Principal com Monitoramento e Gerenciamento
|image::images/debug-project24.png[title="Botão Depurar Projeto Principal com Monitoramento e Gerenciamento"] |Depurar Projeto Principal com Monitoramento e Gerenciamento
|image::images/console24.png[title="Botão Iniciar Console de Gerenciamento de JConsole"] |Iniciar Console de Gerenciamento de JConsole
|===
*Observação.* JConsole faz parte da Plataforma Java e pode ser usado independentemente do IDE. Para obter detalhes, consulte os seguintes recursos.
* Página principal link:http://download.oracle.com/javase/6/docs/technotes/tools/share/jconsole.html[+ ``jconsole`` +]
* link:http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html[+Usando o documento da JConsole+]
== Executando a Aplicação de Amostra
O módulo JMX inclui uma aplicação de amostra com o monitoramento do JMX incorporada nele.
1. Escolha Arquivo > Novo Projeto.
2. Nestas Amostras, selecione a categoria JMX.
3. Selecione o Jogo de Anagramas Gerenciado com o projeto JMX.
image::images/jmx-newproject.png[title="Jogo de Anagramas Gerenciado com o JMX no assistente Novo Projeto"]
[start=4]
. Clique em Próximo. Não é necessário alterar o nome do projeto default fornecido ou os valores do local. Confirme se a caixa de seleção Definir como Projeto Principal está selecionada. Clique em Finalizar.
*Observações.* O IDE poderá solicitar a instalação das bibliotecas JUnit se você não tiver instalado o plug-in do JUnit anteriormente. Você pode clicar em Resolver, na caixa de diálogo Resolver Problemas de Recursos, para iniciar o Instalador a fim de instalar o plug-in do JUnit. Se preferir, instale o plug-in do JUnit no gerenciador de Plug-ins.
[start=5]
. Depois que seu projeto for criado e definido como o Projeto Principal, Execute-o com o JConsole, clicando no botão "Executar Projeto Principal com Monitoramento e Gerenciamento" da JConsole.
*Observações.* É possível que você veja uma advertência de Falha de Conexão na Console de Monitoramento e Gerenciamento Java quando a console tenta estabelecer conexão com o processo do Jogo de Anagramas. Neste tutorial, você pode clicar em Não Seguro quando solicitado a autorizar a conexão.
Clicar neste botão aciona e exibe o Jogo de Anagramas:
image::images/jmx-anagram.png[title="Jogo de Anagramas"]
A janela JConsole também é exibida.
[start=6]
. Na janela JConsole, selecione a guia MBeans e no layout da árvore à esquerda, abra todos os nós em ``anagrams.toy.com`` conforme mostrado abaixo.
image::images/jmx-jconsole1.png[title="Janela JConsole"]
[start=7]
. Selecione o nó Notificações e clique no botão Assinar na parte inferior, de forma que o JConsole recebem uma nova notificação cada vez que um anagrama é resolvido.
[start=8]
. Agora vá para a janela Jogo de Anagramas e resolva os primeiros três ou quatro anagramas. (As respostas estão na classe WordLibrary, mas aqui estão elas: abstração, ambíguos, aritmética, barra invertida...)
[start=9]
. Volte para a JConsole e observe que ela recebeu as quatro notificações.
[start=10]
. Clique no nó Atributos e observe que os valores do atributo estão atualizados:
image::images/jmx-jconsole2.png[title="Janela de JConsole mostrando valores atualizados"]
link:/about/contact_form.html?to=3&subject=Feedback:%20Getting%20Started%20with%20JMX%20Monitoring[+Enviar Feedback neste Tutorial+]
== Consulte Também
Este documento era uma introdução curta e rápida ao módulo JMX do NetBeans IDE. Para obter informações mais detalhadas, consulte o seguinte tutorial do módulo JMX:
* link:jmx-tutorial.html[+Adicionando Instrumentação JMX a uma Aplicação Java+]