A criação de perfil de aplicativo é uma técnica de análise usada para coletar dados de tempo de execução e detectar problemas de aplicativo, como fugas de memória, gargalos de desempenho, criação excessiva de objetos e limites excedidos de recursos do sistema. O Rational® Application Developer Version 7.5, um ambiente de desenvolvimento integrado (IDE) para desenvolvimento de aplicativo corporativo, é uma escolha popular para desenvolver grandes aplicativos para implementação eventual no WebSphere® Application Server. O Rational Application Developer oferece a capacidade de criar perfil de aplicativos Java™ , fornecendo insight sobre as características de desempenho e de memória de seu aplicativo.
Dois tipos de gerenciadores de perfil podem ser usados em um aplicativo:
- Java Profiler. O Java Profiler é um gerenciador de perfis de aplicativo Java com base em padrões estreitamente integrado no fluxo de trabalho de desenvolvimento do Eclipse. O Java Profiling Agent fornece informações detalhadas sobre o comportamento em tempo de execução de aplicativos independentes ou de aplicativos em execução em um servidor de aplicativos. Ele é uma instância de agente que é implementada com o Agent Controller.
- J2EE Request Profiler. O J2EE Request Profiler é um agente que reside dentro do processo do servidor de aplicativos para fins de coleta de dados a partir dos pontos de intercepção das solicitações do aplicativo de e-business. Ele usa o Agent Controller para exteriorizar esses dados para que possam ser renderizados pelas várias visualizações fornecidas pelas perspectivas Profiling e Logging do ambiente de trabalho. O J2EE Request Profiler fornece dados de nível mais alto sobre o aplicativo.
Saber mais sobre o comportamento em tempo de execução de seu aplicativo fornece um melhor entendimento sobre seus requisitos de recursos e gargalos potenciais que podem ocorrer em tempo de execução. O Profiler auxilia na determinação de problemas e fornece insights úteis sobre os parâmetros a serem ajustados para o melhor desempenho do aplicativo.
Esse artigo destina-se a desenvolvedores, especialistas em ajuste de desempenho ou consultores. Ele descreve o processo de gerenciamento de perfis de aplicativos em execução no WebSphere Application Server Version 8.0 usando os recursos de criação de perfil do Rational Application Developer Version 7.5. As etapas para configurar uma instância externa do Application Server com o gerenciador de perfis do Rational Application são diferentes das etapas necessárias se o aplicativo estiver integrado com o Rational Application Developer.
Esse artigo presume os seguintes pré-requisitos:
- Você deve estar familiarizado com o Rational Application Developer e tê-lo usado como uma ferramenta de desenvolvimento.
- É necessário ter um bom entendimento de ambientes do Application Server e da criação de perfis.
- É necessário ter experiência prática em configuração do Application Server e execução de tarefas administrativas.
Os requisitos de sistema são:
- Microsoft® Windows®
- O Rational Application Developer Version 7.5 (o IBM Rational Agent Controller é empacotado na imagem de instalação do Application Developer e, portanto, não é necessária uma etapa separada de instalação.)
- WebSphere Application Server Version 8.0 ND e um perfil Cell (Dmgr01 e AppSrv01 federados)
Como mostrado na Figura 1, o Rational Application Developer pode ser executado em uma máquina separada do WebSphere Application Server ou na mesma máquina. Esse artigo descreve como conectar e ativar a criação de perfil quando a instância do servidor de aplicativos WebSphere de destino está em uma máquina local ou remota (não um ambiente de teste do WebSphere integrado com o Rational Application Developer).
Figura 1. Configuração da máquina para criação de perfil do aplicativo
Definição das variáveis de ambiente
Os diretórios a seguir são usados como os caminhos de instalação para os componentes.
- Raiz do Agent Controller:
C:\IBM\SDP_1\AgentController - Raiz do Application Server:
C:\IBM\WebSphere\AppServer - Raiz do Rational Application Developer:
C:\IBM\SDP
Antes de iniciar o Application Server e o Rational Application Developer, é preciso definir certas variáveis de ambiente na máquina em que o aplicativo de destino está em execução.
- Edite o arquivo
SetupCmdLine.batsobC:\IBM\WebSphere\AppServer\profiles\AppSrv01\binadicionando as instruções na Listagem 1 no final do arquivo.
Lista 1. Definição de variáveis de ambiente
SET TPTP_AC_HOME=C:\IBM\SDP_1\AgentController SET JAVA_PROFILER_HOME=%TPTP_AC_HOME%\plugins\org.eclipse.tptp.javaprofiler SET PROBEKIT_HOME= \ C:\IBM\SDPShared\plugins\org.eclipse.hyades.probekit_4.2.400.v200809010100\os\win32\x86 SET BOOT_LOADER= C:\IBM\SDPShared\plugins\ org.eclipse.tptp.platform.jvmti.runtime_4.4.200.v200809010100\agent_files\win_ia32 SET LD_LIBRARY_PATH= \ %TPTP_AC_HOME%\bin;%TPTP_AC_HOME%\lib;%PROBEKIT_HOME%;%LD_LIBRARY_PATH%;%BOOT_LOADER% SET PATH= \ %TPTP_AC_HOME%\bin;%TPTP_AC_HOME%\lib;%PROBEKIT_HOME%;%JAVA_PROFILER_HOME%;%PATH% |
- Salve e feche o arquivo
SetupCmdLine.bat.
Configure o WebSphere Application Server
É preciso configurar o Application Server para que o Rational Application Developer Profiler possa se conectar a ele.
- Inicie o Deployment Manager. Abra um prompt de comandos e navegue para
C:\IBM\WebSphere\AppServer\profiles\Dmgr01\bin(onde o Dmgr01 é o perfil de gerenciador de implementação em nosso exemplo). Insira o comandostartManager.bat.
Figura 2. Inicie o gerenciador de implementação
- Inicie o agente do nó. Navegue para
C:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin(onde AppSrv01 é o nó em nosso exemplo). Insira o comandostartNode.bat.
Figura 3. Inicie o gerenciador de nó
- Pare o AppSrv01 navegando para
C:\IBM\WebSphere\AppServer\profiles\AppSrv01\bine inserindo o comandostopServer.bat server1. - Inicie o console administrativo do Dmgr01 abrindo um navegador e navegando para o seguinte endereço na máquina do Application Server:
http://localhost:9060/ibm/console O servidor de aplicativos deverá ser iniciado com a criação de perfil ativada. No console administrativo, navegue para Servers > Server Types > WebSphere application servers > server1> Java and Process Management > Process definition > Java Virtual Machine.
Para a criação de perfil com o Java Profiling Agent, insira o seguinte no campo de argumentos da Generic JVM:
-agentlib:JPIBootLoader=JPIAgent:server=controlled;CGProfConsulte Generic JVM arguments para obter mais informações.
Figura 4. Ativação do Java profiling agent
Para a criação de perfil com o J2EE Request Profiler, insira
-DPD_DT_ENABLED=true.
Figura 5. Ativação do gerenciador de perfis do J2EE Request
Clique em OK e salve as alterações de configuração.- Inicie o server1. Abra um prompt de comandos e navegue para
C:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin. Insira o comandostartServer.bat server1.
Figura 6. Iniciando o servidor de aplicativos
Quando o campo de argumentos da Generic JVM for definido para o Java Profiling agent, a inicialização do servidor parece interrompida ( Figura 6) pois está aguardando um sinal do Rational Application Developer nesse modo de criação de perfil "controlado". Prossiga para a próxima etapa.
Configure o gerenciador de perfis no Rational Application Developer
A etapa seguinte é configurar o gerenciador de perfis do Rational Application Developer. Execute essas etapas na máquina em que o Rational Application Developer está instalado.
Configure e inicie o Agent Controller.
- Abra um prompt de comandos e navegue para
C:\IBM\SDP_1\AgentController\bin. Execute o scriptSetConfig.batpara gerar o arquivo de configuração para o Agent Controller - O Agent Controller pode ser iniciado como um aplicativo ou como um serviço do
Windows. Para iniciar como um aplicativo, insira o comando
ACServer.exea partir do diretórioC:\IBM\SDP_1\AgentController\bin.
- Abra um prompt de comandos e navegue para
- Inicie o Rational Application Developer. Em uma janela de comando, navegue para
C:\IBM\SDPe insira o comandoeclipse.exe. -
Quando o programa tiver sido iniciado, acesse Profiling Perspective. Para abrir essa perspectiva:
- Clique em Window > Open Perspective > Other...
- Selecione Profiling and Logging na lista e clique em OK.
Figura 7. Perspectiva Profiling and logging
-
Conecte a um processo Java remoto para a instância do servidor:
- Selecione Run > Profile Configurations.... Na janela de configuração, clique duas vezes em Attach to Agent e clique em New_configuration.
- Insira um nome para a sua configuração
- Na guia Host, na seção Default Hosts, selecione o endereço do host local, por exemplo,
localhost[10002]. Se estiver configurando em um servidor remoto, insira o nome do host ou o endereço IP da máquina remota. Clique em OK. - Clique em
Test Connection para verificar se a comunicação funciona.
Se a conexão falhar, verifique se o
Agent Controller está executando usando a porta padrão.
Figura 8. Teste a conexão
- Em seguida, selecione Agentes (Se você definiu os argumentos da
JVM anteriormente para o Java Profiling agent, então o
agente Java Profiling -- JRE 1.5 ou mais recente deverá estar listado.
Expanda o twisty para localizar Execution Time Analysis. Verifique ambos.
Figura 9. Perfil usando o Java Profiler
Se você definiu anteriormente os argumentos da JVM para o J2EE Request Profiler, então o agente J2EE Request Profiler deverá estar listado. Verifique o agente listado.
Figura 10. Perfil usando o J2EE Request Profiler
- Selecione as guias Common e Destination para visualizar opções adicionais de configuração, como especificar o projeto de criação de perfil. É possível modificar valores nessas duas guias conforme necessário, mas não são necessárias configurações adicionais para esse exemplo.
Alterne de volta para a guia Agentes e clique em Profile.
- Quando o monitoramento iniciar, você estará pronto para começar a criação de perfil do aplicativo. Observe o ID de processo (PID) de server1 na guia
Profiling Monitor como mostrado na figura 11 e figura 12.
Figura 11. Análise de tempo de execução - Java Profiling
Figura 12. J2EE Request Profiler
Criar o perfil do aplicativo e analisar visualizações
Quando o Profiler tiver sido configurado, o aplicativo a ter o perfil criado poderá ser acessado por meio da URL
http://localhost:9080/< application_name
>.
Os dados de criação de perfil são capturados e podem ser analisados no Rational Application
Developer.
Visualizações do Java Profiler. Para abrir uma nova visualização, clique com o botão direito do mouse em <monitoring....collecting> Profiling (date) > Open With. É possível escolher entre várias opções:
- Análise de tempo de execução
- Estatísticas de memória
- Estatísticas de encadeamento
Figura 13. Visualização do gerenciador de perfis do Java
Estatísticas de execução para uma amostra de aplicativo são mostradas na figura 14.
Figura 14. Amostra de estatísticas de execução
Visualizações do J2EE Request Profiler. Para abrir uma nova visualização, clique com o botão direito do mouse em <monitoring....collecting> J2EE Request Profiler (date) - > Open With. Há várias opções disponíveis, por exemplo, UML2 Object Interactions, UML2 Class Interactions e UML2 Thread Interactions
Para exibir os dados capturados na Profiling Perspective, clique com o botão direito na visualização Profiling Monitor e selecione Refresh Views. Isso atualiza os dados para todas as visualizações. Quando os dados forem exibidos, a visualização deverá ser atualizada novamente para exibir dados recém-capturados.
Figura 15. J2EE Request Profiler
Estatísticas de memória para uma amostra de aplicativo são mostradas na figura 16.
Figura 16. Amostra de estatísticas de memória
Mais informações sobre essas visualizações encontram-se nos modos apropriados abaixo. Os quatro níveis são:
- Pacote
- Classe
- Método
- Instância
É possível alternar entre os modos pacote, classe, método e instância selecionando o controle apropriado da barra de ferramentas.
- "O Centro de informações do WebSphere Application Server V8 " contém informações adicionais sobre criação de perfil do aplicativo.
- Consulte
Centro de Informações do Rational Application Developer V7.5 para ver discussões adicionais sobre a criação de perfil usando o
Rational Application Developer.
- Capítulo 27 do Rational Redbook Guia de Programação do Rational
Application Developer V7.5 fornece um exemplo de criação de perfil.

Keerthana Sharath é especialista em integração de aplicativos & soluções de middleware no IBM India Software Labs, WebSphere Lab Services por mais de 4 anos. Ela trabalhou em envolvimentos com clientes relacionados a vários produtos, incluindo WebSphere Application Server, WebSphere Process Server, ILOG e Lombardi. Ela trabalhou com WebSphere Education Development para desenvolver e entregar cursos de WebSphere e tem certificações em WebSphere Application Server e Process Server Administrator.