Ferramentas de Definição de Perfis e Logs - Notas sobre o Release

Componente de Ferramentas de Definição de Perfis e Logs - Notas sobre o Release

1.0 Limitações
   1.1 Como Abrir a Visualização Console na Perspectiva Definição de Perfis e Logs
   1.2 Probekit: Considere Escolher a Codificação UTF-8 para Arquivos de Origem do Probekit
   1.3 Análise de Fuga: Análise de Fuga Não Disponível no OS/400 iSeries(TM)
   1.4 Dicas ao Definir Perfis de seu Aplicativo.
   1.5 Análise de Fuga: Comportamento Inesperado com "Enviar Dados de Definição de Perfis para um Arquivo"
   1.6 Análise de Fuga: A Abertura do Gráfico de Referência do Objeto para um Processamento de Dump de Heap do IBM(C) OS/390® (SVC) Demora Muito Tempo
   1.7 Análise de Fuga: Local e Gerenciamento de Arquivos de Dump de Heap Otimizado do Hyades
   1.8 Análise de Fuga: O Arquivo de Log de Análise de Fuga
   1.9 Análise de Fuga: Definindo RADLEAKJVMSIZE para Analisar Heaps Muito Grandes
   1.10 Análise de Encadeamento: A Detecção de Conflitos Não Funciona com o IBM JRE 1.4.2
2.0 Problemas Conhecidos
   2.1 Probekit: Não Utilize Caracteres Não-ASCII nos Nomes de Arquivos de Origem do Probekit
   2.2 Probekit: Construindo Arquivos de Origem do Probekit
   2.3 Probekit: Caracteres Não-ASCII em Especificações de Destino do Probekit
   2.4 Método e Cobertura no Nível de Linha: 'Método de Esvaziamento' com Caracteres Não-ASCII
   2.5 Método e Cobertura no Nível de Linha: Filtros EXCLUDE Não Devem Começar com um Curinga
   2.6 Análise de Fuga: Nenhum Suporte para Dumps de Heap IBM Criados pela JVM J9
   2.7 Análise de Fuga: É Necessário Especificar um Novo Projeto ou Monitor ao Importar Arquivos de Heap
   2.8 Cobertura no Nível de Linha, Probekit: É Necessário Reiniciar o Projeto para Coletar Dados de Classes Já Carregadas
   2.9 Caracteres de Byte Duplo Não São Mostrados na Visualização do Console
   2.10 Análise de Fuga: Travamento ao Definir Perfis de Applets com a IBM JVM
   2.11 Análise de Fuga: O Código do Idioma para a Análise Precisa Ser Igual ao da Coleta de Dados
   2.12 Análise de Encadeamento: Proprietário do Encadeamento de Travas Ausente com o IBM JRE 1.4.1 ou Anterior
   2.13 Durante a Definição Remota de Perfis no Solaris, a JVM da Sun Pode Travar

Componente de Ferramentas de Definição de Perfis e Logs - Notas sobre o Release

1.0 Limitações

1.1 Como Abrir a Visualização Console na Perspectiva Definição de Perfis e Logs

Ao definir o perfil de um aplicativo, a visualização Console não aparece na perspectiva Definição de Perfis e Logs, por padrão.

Para abrir a visualização Console na perspectiva Definição de Perfis e Logs, selecione Janela->Mostrar Visualização->Console.

Para que o stdout apareça no Console, clique em Janela->Preferências->Executar/Depurar->Console e selecione Mostrar quando o programa grava na saída padrão.

1.2 Probekit: Considere Escolher a Codificação UTF-8 para Arquivos de Origem do Probekit

Ao criar um novo arquivo de origem do Probekit, o assistente permite escolher a codificação XML a ser utilizada. A seleção padrão é ASCII. Se você desejar utilizar caracteres não-ASCII em qualquer lugar no arquivo de origem do probe (por exemplo, nos campos Rótulo ou Descrição ou no código Java de um fragmento), deverá escolher a codificação UTF-8, não ASCII.

Para alterar a codificação de um arquivo de origem existente do probe, clique com o botão direito do mouse no arquivo e selecione Abrir com -> Editor de Texto. Altere a codificação no cabeçalho XML para "UTF-8" e salve e feche o arquivo. Clique com o botão direito do mouse e escolha Abrir com -> Editor do Probe para editar o conteúdo.

1.3 Análise de Fuga: Análise de Fuga Não Disponível no OS/400 iSeries(TM)

O recurso Análise de Fuga não está disponível para programas do usuário executados no OS/400® iSeries(TM). Os dumps de heap Otimizados do Hyades gerados nessa plataforma estão incompletos e não é possível gerar dumps de heap em nenhum outro formato.

1.4 Dicas ao Definir Perfis de seu Aplicativo.

O desempenho das ferramentas de definição de perfis está diretamente relacionado à quantidade de dados coletados e à taxa na qual esses dados são transferidos para o workbench. À medida que a quantidade de dados coletados aumenta, um usuário perceberá um maior desempenho quanto ao tempo gasto para fazer a análise e quanto à memória disponível para executar diferentes tarefas. O usuário tem várias maneiras de aumentar o desempenho da definição de perfis.

1.5 Análise de Fuga: Comportamento Inesperado com "Enviar Dados de Definição de Perfis para um Arquivo"

Ao coletar os dumps binários de heap Otimizado do Hyades, se você enviar os dados para um arquivo trcxml, selecionando "Enviar dados de definição de perfis para um arquivo", observe o seguinte:

O Agent Controller deve estar em execução no host de implementação para que seja possível acessar os arquivos de heap salvos nele. Na primeira vez em que você executar Importar->Arquivo de Definição de Perfis no arquivo trcxml, a análise de fuga e a visualização de Gráficos de Referência do Objeto funcionam conforme o esperado.

Se você executar Importar->Arquivo de Definição de Perfis uma segunda vez, a importação funcionará, mas as tentativas de executar a Análise de Fuga ou visualizar um Gráfico de Referência do Objeto poderão falhar. Isso ocorre porque os arquivos de heap necessários podem não estar disponíveis no host de implementação.

Se encontrar esse problema, acesse os arquivos de heap a partir do projeto em que você importou o arquivo trcxml pela primeira vez. Os arquivos de heap estão em um diretório denominado "leakanalysisheapdir" sob o diretório do projeto.

1.6 Análise de Fuga: A Abertura do Gráfico de Referência do Objeto para um Processamento de Dump de Heap do IBM(C) OS/390 (SVC) Demora Muito Tempo

Os dumps de heap do IBM(C)OS/390(SVC) são muito grandes. A expansão de grandes dumps de heap para visualizá-los na visualização Gráfico de Referência do Objeto pode demorar muito tempo. Como resultado, a operação poderá ser interrompida. O workbench ainda poderá estar expandindo ativamente o dump de heap mesmo quando o monitor de progresso parecer 100% parado.

1.7 Análise de Fuga: Local e Gerenciamento de Arquivos de Dump de Heap Otimizado do Hyades

Executar a ação "Capturar Dump de Heap" gera dumps de heap Otimizado do Hyades no host no qual o aplicativo de destino está implementado. O diretório de destino do dump de heap é controlado pela definição de LOCAL_AGENT_TEMP_DIR no arquivo de configuração do Agent Controller, serviceconfig.xml. Para obter informações sobre como localizar e modificar esse arquivo, consulte o tópico da Ajuda "Administrando o Agent Controller" sob "Detectando e Analisando Problemas de Tempo de Execução".

Se você receber qualquer uma das seguintes mensagens de erro, "Expandir Dump de Heap falhou na etapa: ...Lendo arquivo" ou "A Análise de Fuga falhou na etapa: Criando gráfico de referência do objeto de heap", verifique se o Agent Controller está em execução no host de implementação e tente novamente seu comando. O Agent Controller ajuda a copiar os arquivos do host de implementação para o diretório de projeto do workbench.

1.8 Análise de Fuga: O Arquivo de Log de Análise de Fuga

Se você tiver problemas durante a análise de fuga, o arquivo de log de Análise de Fuga poderá ser útil.

Durante a Análise de Fuga, informações de diagnóstico são gravadas no arquivo LeakAnalysis.log. O LeakAnalysis.log contém a saída das várias etapas executadas durante a análise de fuga e indicará o sucesso ou defeito da execução da análise de fuga.

O LeakAnalysis.log é gravado no projeto de definição de perfis associado aos dados do perfil. Por exemplo, no Windows, <meu_espaço_de_trabalho>\ProfileProject\LeakAnalysis.log.

Informações adicionais podem ser gravadas no arquivo de log, utilizando a propriedade de sistema RADLEAKREGIONDUMP. Inclua esta opção no rationalsdp.ini:

VMArgs=-DRADLEAKREGIONDUMP=1

O arquivo rationalsdp.ini está localizado no diretório de instalação do Rational Software Architect.

1.9 Análise de Fuga: Definindo RADLEAKJVMSIZE para Analisar Heaps Muito Grandes

Se a análise de fuga falhar com a seguinte mensagem no arquivo LeakAnalysis.log, 'JVMDUMP006I Processando o Evento de Dump "não capturado", detalhe "java/lang/OutOfMemoryError"', você deverá aumentar o tamanho de heap do processo de análise de fuga.

Para fazer isso, defina o atributo de sistema RADLEAKJVMSIZE do Rational Software Architect. Esse atributo controla o tamanho de heap da JVM disponível durante a análise de fuga.

Para definir o RADLEAKJVMSIZE, inclua esta opção no arquivo rationalsdp.ini:

VMArgs=-DRADLEAKJVMSIZE=value

Em que value é o novo limite de tamanho de heap, como 1024 M. O valor padrão é 512 M. Você deve indicar se o tamanho de heap é expresso em megabytes ou gigabytes (M ou G).

O arquivo rationalsdp.ini está localizado no diretório de instalação do Rational Software Architect.

1.10 Análise de Encadeamento: A Detecção de Conflitos Não Funciona com o IBM JRE 1.4.2

Ao utilizar a JVM clássica da IBM com o recurso de definição de perfis da Análise de Encadeamento, a Visualização de Encadeamento da perspectiva Definição de Perfis e Logs não exibe estados 'Aguardando trava' para todos os encadeamentos envolvidos em um conflito. Isso ocorre devido a informações ausentes nos dados coletados. Solução alternativa: Utilize a IBM J9 JVM, incluindo -Xj9 no campo Argumentos de VM da guia Argumentos do diálogo Perfil.

2.0 Problemas Conhecidos

2.1 Probekit: Não Utilize Caracteres Não-ASCII nos Nomes de Arquivos de Origem do Probekit

Os arquivos de origem do Probekit com caracteres não-ASCII em seus nomes não serão processados corretamente. Utilize apenas caracteres ASCII nos nomes de arquivos de origem do Probekit.

2.2 Probekit: Construindo Arquivos de Origem do Probekit

Não utilize a ação Probekit->Compile que aparece no menu contextual para arquivos *.probe. Em vez disso, converta o projeto que contém o arquivo *.probe em um projeto Probekit e utilize o mecanismo de construção padrão. (Para converter um projeto Java em um projeto Probekit, utilize Arquivo->Novo->Outro e, na seção Definição de Perfis e Logs, escolha Converter projetos Java em projetos Probekit).

2.3 Probekit: Caracteres Não-ASCII em Especificações de Destino do Probekit

Não utilize caracteres não-ASCII nos padrões para as especificações de "Destino" do Probekit. Os probes que contêm caracteres não-ASCII em padrões de Destino não serão processados corretamente.

2.4 Método e Cobertura no Nível de Linha: 'Método de Esvaziamento' com Caracteres Não-ASCII

Não utilize caracteres não-ASCII ao incluir padrões de método para "Esvaziar dados de cobertura quando..."

Se você digitar caracteres não-ASCII nos campos de pacote, classe ou método do diálogo Incluir do padrão de método, um erro de entrada inválida será exibido e não será possível descartar o diálogo.

Solução alternativa: Utilize um caractere curinga (asterisco) no lugar dos caracteres não-ASCII em seus padrões.

2.5 Método e Cobertura no Nível de Linha: Filtros EXCLUDE Não Devem Começar com um Curinga

Um filtro EXCLUDE que comece com um caractere curinga (asterisco), como "*foo", faz com que as visualizações Estatísticas de Cobertura, Navegador de Cobertura e Origem Anotada não exibam dados. Solução alternativa: Não utilize esse filtro EXCLUDE.

2.6 Análise de Fuga: Nenhum Suporte para Dumps de Heap IBM Criados pela J9 JVM

O recurso Análise de Fuga não está disponível para programas do usuário em execução na IBM J9 JVM.

A IBM J9 JVM cria arquivos de heap com nomes semelhantes a heapdump.20041012.093936.2192.dmp quando você define a variável de ambiente IBM_HEAPDUMP e envia sinais "kill -3" para o processo Java em execução. Esses arquivos .dmp precisam ser pós-processados, executando j9extract e jdmpview e criar dumps de heap IBM.

O formato desses dumps de heap não é idêntico ao formato de dumps de heap gerados pela jvm clássica IBM.

2.7 Análise de Fuga: É Necessário Especificar um Novo Projeto ou Monitor ao Importar Arquivos de Heap

Se você importar vários conjuntos de dumps de heap com o mesmo nome de monitor para um projeto existente, poderá perder dados se posteriormente salvar o projeto ou sair do workbench.

Para evitar isso, especifique uma combinação exclusiva de Projeto/Monitor para cada conjunto de heaps importados.

2.8 Cobertura no Nível de Linha, Probekit: É Necessário Reiniciar o Projeto para Coletar Dados de Classes Já Carregadas

Se você iniciar um servidor WAS e conectar-se a ele, os tipos de definição de perfil Probekit e Cobertura no Nível de Linha não coletarão dados para nenhuma classe que já tenha sido carregada na JVM de destino. Solução alternativa: Para coletar dados dessas classes, reinicie o projeto que contém essas classes.

2.9 Caracteres de Byte Duplo Não São Mostrados na Visualização do Console

Durante a definição de perfis, todos os caracteres de byte duplo são mostrados como ???? na visualização do console.

2.10 Análise de Fuga: Travamento ao Definir Perfis de Applets com a IBM JVM

A definição de perfis de applets com a IBM 1.4.2 SR1 JVM para análise de fuga resulta em um travamento da JVM. Para solucionar esse problema, especifique -Xj9 nos argumentos de VM para seu aplicativo.

2.11 Análise de Fuga: O Código do Idioma para a Análise Precisa Ser Igual ao da Coleta de Dados

A definição do código do idioma no host do workbench, no host de implementação remota e no aplicativo de destino devem ser todos iguais ao coletar dumps de heap Otimizado do Hyades.

2.12 Análise de Encadeamento: Proprietário do Encadeamento de Travas Ausente com o IBM JRE 1.4.1 ou Anterior

Ao definir perfis para Análise de Encadeamento com o IBM JVM 1.4.1 ou anterior, a Visualização de Encadeamentos na perspectiva Definição de Perfis e Logs não mostra o proprietário do encadeamento de monitores de trava porque esses dados não são coletados. Solução alternativa: Faça upgrade para o IBM JRE 1.4.2.

2.13 Durante a Definição Remota de Perfis no Solaris, a JVM da Sun Pode Travar

Ao definir perfis remotamente no Solaris, um defeito no JRE Sun 1.4.x impede a definição de perfis para algumas combinações de recursos, especialmente com a definição de perfis de memória ou a análise de encadeamentos ativadas. O site da Sun descreve esse problema: http://developer.java.sun.com/developer/bugParade/bugs/4614956.html Solução alternativa: Utilize o JRE Sun 1.4.2_06 ou posterior.

Retornar para o Arquivo Leia-me Principal