Rastreamento COM+

O serviço de rastreamento COM+ permite que você crie seus próprios programas administrativos e de diagnóstico que rastreiam o status e o desempenho da execução de aplicativos COM+. O rastreamento COM+ fornece informações estatísticas sobre o uso de aplicativos COM+, bem como informações de status, como se uma instância de aplicativo de servidor COM+ está pausada ou foi reciclada. As ferramentas podem usar informações de rastreamento no monitoramento de diagnóstico ou para fins de exibição. Por exemplo, a ferramenta administrativa Serviços de Componentes usa o controle COM+ para exibir o status das instâncias de aplicativo COM+ nas pastas Aplicativos COM+ e Processos em Execução.

O rastreamento COM+ calcula e atualiza periodicamente um conjunto de métricas comumente usadas, disponibilizando essas informações para os programas que precisam delas. É semelhante à Instrumentação COM+ em que ambos os serviços coletam automaticamente dados de instâncias de aplicativos COM+ e disponibilizam esses dados aos consumidores. No entanto, existem algumas diferenças importantes entre esses serviços, tanto na funcionalidade fornecida quanto no uso típico. A tabela a seguir resume essas diferenças.

COM+ Instrumentação Rastreamento COM+
Dados refinados. O serviço de instrumentação COM+ notifica os assinantes registrados sobre eventos discretos individuais (por exemplo, método chamado, objeto destruído) que ocorrem em uma instância de aplicativo COM+.
Dados agregados. O controle COM+ calcula e atualiza periodicamente as métricas comumente usadas para o status e o desempenho das instâncias de aplicativos COM+.
Os assinantes de eventos normalmente calculam métricas por conta própria, usando algoritmos e políticas ad-hoc.
As métricas são calculadas automaticamente pelo serviço de rastreamento COM+. Todos os consumidores obtêm os mesmos dados, sem suporte para métricas personalizadas.
Depois de registrar uma assinatura, o consumidor não recebe nenhuma informação sobre uma instância de aplicativo COM+ até que um evento ocorra.
Os dados de rastreamento de todas as instâncias do aplicativo COM+ podem ser recuperados a qualquer momento.
Suporta apenas um mecanismo de assinatura baseado em eventos COM+ para consumidores.
Oferece suporte a um mecanismo de assinatura baseado em eventos COM+ e sondagem em uma interface de servidor local COM.
Exemplos
Notificações quando um método é chamado ou retornado.
Tempo médio de resposta de chamada, número de chamadas de método bem-sucedidas ou com falha em um período de tempo recente, número de objetos atualmente em uma chamada de método.
Notificações quando um objeto é adicionado ou obtido do pool de objetos.
Número de objetos no pool, número total de objetos.
Notificações quando um aplicativo de servidor COM+ é iniciado, pausado ou reciclado.
Status do processo de aplicativo do servidor COM+ (por exemplo, se ele está pausado ou reciclado).
Notificações de eventos de início, preparação, anulação e confirmação de transações.
Não há equivalência.
Notificações de tentativas de autenticação de nível de chamada de método bem-sucedidas e com falha.
Não há equivalência.

Embora o rastreamento COM+ seja mais limitado em termos de escopo de dados e flexibilidade para calcular métricas, as métricas que ele fornece devem ser suficientes para uma ampla variedade de programas administrativos e de diagnóstico. O uso do rastreamento COM+, quando possível, pode simplificar o design desses programas. Além disso, o uso do rastreamento COM+ em sistemas de produção pode ter um impacto de desempenho significativamente menor, tornando-o mais apropriado para ferramentas de monitoramento em tempo real.

Como o rastreamento COM+ coleta dados

Quando um processo de aplicativo de servidor COM+ é iniciado, COM+ registra o processo com o servidor de rastreador, um componente do aplicativo do sistema. Componentes em contextos de biblioteca COM+, aplicativos e serviços sem componentes (SWC) também oferecem suporte ao rastreamento. Quando um componente de biblioteca ou contexto SWC é criado em um processo, COM+ registra o processo com o servidor de rastreador, se ele ainda não tiver sido registrado.

COM+ atualiza estatísticas para um processo controlado quando determinados eventos ocorrem no processo, como a criação de um objeto ou a conclusão de uma chamada de método. Os dados atualizados são periodicamente enviados ao servidor rastreador, momento em que ficam disponíveis para os consumidores. O servidor rastreador também é responsável por calcular algumas das métricas usadas pelos recursos de reciclagem e monitoramento de travamento do aplicativo COM+. Esses dados também estão disponíveis para os consumidores.

Os dados de rastreamento são organizados de acordo com o processo que gerou os dados. Os dados ao nível de aplicações COM+ individuais ou componentes no processo também estão disponíveis para os consumidores que necessitam destas informações.

Eventos versus sondagem

O rastreamento COM+ oferece suporte a dois mecanismos para que um consumidor obtenha dados de rastreamento do servidor de rastreador, um mecanismo de assinatura baseado em eventos COM+ e uma interface de servidor local COM.

Os programas que precisam ser notificados periodicamente com dados de rastreamento atualizados podem registrar uma assinatura para a interface de eventos IComTrackingInfoEvents. Aproximadamente a cada três segundos, o servidor de rastreador chama o método IComTrackingInfoEvents::OnNewTrackingInfo de cada assinante, enviando os dados de rastreamento mais recentes na forma de um objeto de coleção. Esse objeto implementa a interface IComTrackingInfoCollection e os assinantes podem navegar nessa coleção para encontrar os dados nos quais estão interessados.

Por vários motivos, pode fazer mais sentido para um programa sondar o servidor rastreador de dados. Por exemplo, uma ferramenta de monitoramento pode precisar de atualizações com muito menos frequência do que um programa que exibe o status em uma interface do usuário. Além disso, um programa pode usar apenas uma pequena parte dos dados de rastreamento disponíveis para o sistema (por exemplo, uma ferramenta pode monitorar apenas o desempenho de instâncias de um único aplicativo COM+). O modelo de assinatura envia a cada assinante os dados de rastreamento de todos os aplicativos COM+ em cada notificação, e é responsabilidade do assinante encontrar os dados desejados. Finalmente, os eventos COM+ são um mecanismo de notificação de eventos de melhor esforço. Serviços confiáveis de entrega de mensagens não são fornecidos, e não há como um assinante detectar que o servidor do rastreador não conseguiu enviar uma notificação.

Um programa que precisa de maior controle sobre sua recuperação de dados de rastreamento pode usar a interface IGetAppTrackerData do servidor de rastreador.