Exercício 1.2: Coletando Dados de Encadeamento
Antes de começar, você deve concluir o Exercício 1.1: Importando o recurso requerido.
Cenário: O programa que será investigado é executado brevemente e, em seguida, é interrompido abruptamente. Isso acontece toda vez que o programa é executado. Esse comportamento é típico de conflitos de encadeamento, assim você precisa investigar como os encadeamentos neste programa interagem.
Para localizar os possíveis conflitos de encadeamento, primeiramente você coletará dados de encadeamento e os analisará utilizando a visualização Encadeamento na perspectiva Criação de Perfis e de Logs.
A coleta de dados de encadeamento permitirá identificar o conflito ou excluir encadeamentos da causa do defeito do aplicativo.
Preparando para Coletar Dados de Encadeamento
Para coletar dados de encadeamento, você precisa estar na perspectiva Criação de Perfis e de Logs.
Para alternar a perspectiva:
- Na barra de menus do Software Development Platform, selecione Janela > Abrir Perspectiva > Outra... A caixa de diálogo Selecionar Perspectiva é aberta.
- Na parte inferior esquerda da caixa de diálogo, clique em Mostrar tudo. Aparece uma marca na caixa de opções.
- Na lista de perspectivas, selecione Criação de Perfis e de Logs e clique em OK.
- Se a caixa de diálogo Confirmar Ativação for aberta, clique em Sempre ativar os recursos e não perguntar novamente e, em seguida, clique em OK.
- O Software Development Platform é alternado para a perspectiva Criação de Perfis e de Logs.
Coletando Dados de Encadeamento para o Aplicativo philosopher
Para coletar dados:
- Na barra de menus do Software Development Platform, selecione Janela > Mostrar Visualização > Console para abrir a visualização Console. A visualização Console permite seguir o aplicativo à medida que ele é processado.
- Crie uma configuração de criação de perfil:
- Na barra de menus, selecione Executar > Perfil... A caixa de diálogo Perfil é aberta.
- Na lista Configurações, dê um clique duplo na entrada Aplicativo Java. Uma entrada Nova_configuração aparece.
- No campo Nome, digite PhilosopherThreads.
- Na guia Principal, se philosopher ainda não estiver inserido no campo Projeto, faça o seguinte:
- Ao lado do campo Projeto, clique em Procurar. A caixa de diálogo Seleção de Projeto é aberta.
- Selecione philosopher e, em seguida, clique em OK.
- Ao lado do campo Classe principal, clique em Procurar.
- Na caixa de diálogo Escolher Tipo Principal, selecione MaitreDHote e, em seguida, clique em OK.
- Se estiver utilizando o IBM JVM (Java Virtual Machine), faça o seguinte:
- Na caixa de diálogo Perfil, clique na guia Argumentos.
- Em Argumentos da VM, digite -Xj9 para especificar a versão correta do JVM.
- Na caixa de diálogo Perfil, clique na guia Criação de Perfis.
- Na subguia Visão Geral, marque a caixa de opções para o conjunto de criação de perfis Análise de Encadeamento. (Um conjunto de criação de perfis define o tipo de dados da criação de perfis que devem ser coletados para a execução.)
- Clique em Perfil. O aplicativo é executado e a exibição é alterada da seguinte forma:
- Um recurso de Criação de perfis aparece no Monitor de Criação de Perfis.
- A visualização Console mostra a saída da execução.
Nota: Se você obtiver uma Mensagem de Segurança informando que o Agent Controller não está disponível, leia Se não for possível coletar dados.
Quando o aplicativo alcançar um determinado ponto, ele pára o processamento. A saída será semelhante ao seguinte:
. . .
philo#3: waiting for right fork#3
philo#2: waiting for right fork#2
philo#1: waiting for right fork#1
philo#0: waiting for right fork#0
HeadWaiter: all philosophers are locked for 6 times.
exiting application.
Aqui é onde o programa pára. Nesta execução, entretanto, você coletou dados de encadeamento e agora poderá analisar porque ele parou.
Se Não For Possível Coletar Dados
Antes de poder coletar qualquer tipo de dados de criação de perfis, o Agent Controller deve estar em execução. Se você obtiver uma mensagem informando que o Agent Controller não está disponível, certifique-se de que ele foi instalado, inicie-o manualmente e tente novamente. Para obter instruções, consulte o guia de instalação. É possível acessar o guia de instalação utilizando a barra de lançamento, ou ainda é possível encontrá-lo no CD do produto em disk1/install.html.
Após coletar os dados, você estará pronto para começar o Exercício 1.3: Identificando um gargalo de encadeamento.