Vamos descrever neste Post como utilizar o Jconsole para monitorar instâncias do Jboss ou qualquer outra aplicação Java. O pré-requisito para utilizar o Jconsole, é necessário que você tenha uma instalação do JDK instalada na máquina onde será aberta a tela de monitoramento.
No servidor onde está a instância do Jboss que deseja monitorar, edite o arquivo "JBOSS_HOME\bin\run.bat". Localize no arquivo a variável "JAVA_OPTS", incluindo ao final da linha o conteúdo abaixo:
-Dcom.sun.management.jmxremote.port=20000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
Reinicie a instância do Jboss (sim, é necessário) e abra o Jconsole. O arquivo Jconsole.exe está localizado no diretório "JDK_HOME\bin".
Será aberta a tela inicial de conexão:
O jconsole pode monitorar aplicações local ou remota. Se for necessário monitorar uma aplicação local, basta selecionar o processo Java na lista de processos apresentados (para esta opção é necessário executar o Jconsole no servidor onde está o processo do Jboss). Se a aplicação for remota, informar o endereço IP do servidor e a porta de conexão configurada no run.bat (no nosso exemplo, porta 20000). Escolha sua opção e clique no botão “Connect”.
A interface do JConsole é composta por seis abas:
Overview: informações gerais sobre a aplicação;
Memory: Informações sobre o uso de memória;
Threads: Informações sobre o uso de threads;
Classes: Informações sobre o carregamento de classes da aplicação;
VM Summary: Informações gerais sobre a VM e da aplicação monitorada;
MBeans: Informações sobre os MBeans registrados.
As informações mais úteis para o nosso gerenciamento estão na aba “Memory”. Ela exibe a memória utilizada, quantas vezes foi executado o Garbage Collector (Minor e Major), o gerenciamento da Heap (Young Generation e Tenured Generation) e da PermGen. Falaremos mais sobre o gerenciamento de memória em Posts posteriores.
