Foi disponibilizado em nossos
ambientes uma aplicação para monitoramento de transações e chamadas ao
Contexto, visando melhorar a detecção de bugs, performance de SQL, operações
longas e situações similares.
A aplicação
monitora qualquer chamada que passe pelo Contexto do sistema como execução de
instruções SQL (DML/DDL), operações que envolvam transações ou mesmo as que
requisitam algum dado contido/mantido pelo Contexto. O monitoramento é feito por servidor de aplicação e independente do número de bancos que estejam sendo acessados simultaneamente.
Funcionamento
Abrir a aplicação
“AppSI/Ferramentas_SI/ContextLogAnalizer.exe” diretamente no servidor de
aplicações com usuário Administrador da máquina.
- Ativar/Desativar
Contexto: Permite preparar o Contexto para rastreamento de qualquer
chamada.
- Ativar/Desativar
Log: Quando ativo monitora todas as chamadas feitas e as armazena em
memória no pacote “pkContextLogAnalizer” até que seja feito o flush das
operações.
ATENÇÃO! O ativamento do Contexto e do Log só
deverão ser utilizados para análise de problemas, otimização ou situação
similar. Essa funcionalidade deve ficar INATIVA no ambiente de
produção quando os dados coletados não estiverem sendo monitorados.
Ao ativar o Log todas as operações
passadas pelo Contexto do servidor são armazenadas (independe do banco de dados
que esteja em uso por cada conexão). As conexões que já estejam em uso poderão
ser vistas na guia de Conexões. Essa guia é atualizada automaticamente enquanto
o Log está ativo.
Clicando em cada conexão serão
mostrados os detalhes da mesma e um resumo do que está sendo executado (enquanto
ativa). Caso a conexão já esteja disponível (ociosa) será exibido o
resumo da última execução. Para detalhar cada chamada deve-se utilizar a guia “Pilha
de Chamadas”.
Na guia Pilha de Chamadas ficam as
informações detalhadas de cada operação. Essas informações ficam em memória no
servidor de aplicações e são renovadas/sobrescritas a cada 10min. Clicando em “Atualizar”
é possível visualizar o que está em execução atualmente ou o que já foi
executado nos últimos 10min. As informações contidas nessa guia não são
atualizadas automaticamente permitindo que o usuário trabalhe com os dados e
faça a atualização apenas quando achar necessário.
Exemplos de Informações que podem ser coletadas pela aplicação
- Operações executadas por cada chamada à camada servidora das aplicações
- Tempo gasto em cada conexão, chamada ou metaquery executada
- Conexões ativas e em transação
- Objetos ativos/em execução no COM+
- SQL executados com valores de cada parâmetro
- Exceções geradas durante as chamadas
- Nº de Transações iniciadas/comitadas
- Dados de cada conexão/chamada como usuário/IP e aplicação de origem
- Pilha ordenada de execuções em cada chamada
Dados que são coletados durante o monitoramento
Por conexão ativada: Usuário do Banco, Nº da Conexão, Usuário, Aplicação,
IP do Usuário, Alias do Banco, Hora Inicial, Hora Final, Tempo de uso, Em
Transação
Por evento executado: Nº da Conexão, Alias do Banco, Método, Nome
da Query, Aplicação Servidora, Hora Inicial, Hora Final, Tempo de Execução, ID
da Aplicação, ID do Usuário, SQL executado, Parâmetros do SQL, Nº da Chamada, Classe
de Exceção, Mensagem de Exceção
Por pacote ativado: Aplicativo, PID, Programa, Objetos, Ativados, Em
Chamada, Tempo de Chamada
Outras informações e cruzamentos de dados poderão ser adicionados futuramente conforme a necessidade. Qualquer dúvida favor mandar email.