O COM+ dá suporte à coleta automática de arquivo de despejo de processo e ao término do processo no Windows Server

Aplica-se a: SDK do Windows para Windows 10
Número de KB original: 910904

Introdução

O sistema registra um evento quando um componente COM+ experimenta um tempo de chamada extraordinariamente alto. O log de eventos identifica o componente COM+ que experimenta o problema. Além disso, o log de eventos menciona este artigo (910904). O sistema pode ser configurado para executar uma ou ambas as ações:

  • Colete automaticamente um arquivo de despejo de processo para análise de causa raiz do problema.
  • Encerre o processo para ajudar a se recuperar do problema sem intervenção manual.

Depois que o sistema tiver coletado um arquivo de despejo, use a Ferramenta de Diagnóstico de Depuração (DebugDiag) para gerar um relatório que descreve o problema e fornece soluções conhecidas.

Comportamento padrão

Considere o seguinte cenário:

  • O tempo de chamada de um componente COM+ excede 10 minutos.
  • Você abre o snap-in do MMC (Component Services Microsoft Management Console) enquanto o aplicativo que hospeda esse componente COM+ de longa duração está em execução.

Nesse cenário, o seguinte evento é registrado no log do aplicativo:

Event Type: information
Event Source Information: COM+
COM+ Event Category: (117)
Event ID: 782
Description: The average call duration exceeded 10 minutes.
If this is not the expected behavior, see Microsoft Knowledge Base Article 910904 in http://support.microsoft.com for detailed information about
how to use the COM+ AutoDump feature to automatically generate dump files and terminate the process if the problem recurs.
Server application ID: <YourAppID>
Server application instance ID: <YourAppInstanceID>
Server application name: <YourAppName>

Opções de configuração

Importante

Esta seção envolve modificações no registro. Siga as etapas com cuidado. Sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Faça backup do registro como precaução. Para saber mais sobre como fazer o backup e restaurar o registro, consulte Como fazer o backup e restaurar o registro no Windows.

O sistema pode ser configurado para executar uma ou ambas as ações a seguir quando um componente COM+ de execução longa é detectado:

  • Colete automaticamente um arquivo de despejo de processo.

  • Encerre o processo.

    Para fazer isso, use os seguintes valores de registro:

    Nome do valor Tipo de dados Descrição Valor padrão
    AverageCallThreshold REG_DWORD Limite, em segundos, quando as ações apropriadas serão tomadas 0
    DumpType REG_DWORD 0 = Gerar um arquivo de despejo completo; 1 = Gerar um arquivo de minidump; 2 = Nenhum arquivo de despejo 0
    Terminate REG_DWORD 0 = O processo continuará; 1 = O processo será encerrado 0
  • Para definir ações globalmente para todos os componentes COM+ no computador, adicione os valores de configuração na seguinte chave de registro:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump

  • Para definir ações a serem tomadas para um componente COM+ específico, independentemente das configurações globais, adicione os valores de configuração na seguinte chave do registro:
    HKEY_CLASSES_ROOT\AppId\{<YourAppID>}\AutoDump\{<YourCLSID>}

Recomendações

O conteúdo a seguir mostra como marcar e analisar os arquivos de despejo completos.

Coletar arquivos de despejo completos

Colete um arquivo de despejo completo quando um componente COM+ tiver um tempo de chamada extraordinariamente alto. Por exemplo, crie o seguinte valor de registro único:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump AverageCallThreshold = 300

Consulte a seção Considerações para obter mais informações sobre como selecionar um valor de registro apropriado AverageCallThreshold para seu ambiente específico.

Da mesma forma, colete um arquivo de despejo completo quando ocorrer uma exceção não tratada em um aplicativo COM+. Para fazer isso, marcar a caixa Habilitar despejo de imagem no marcar de falha do aplicativo na guia Despejar nas propriedades de cada aplicativo COM+.

Analisar os arquivos de despejo

Para analisar o arquivo de despejo, siga estas etapas:

  1. Baixe e instale a Ferramenta de Diagnóstico de Depuração (DebugDiag).

  2. Use a Ferramenta de Diagnóstico de Depuração para gerar um relatório de análise para o arquivo de despejo seguindo estas etapas:

    1. Execute o aplicativo DebugDiag Analysis no menu Iniciar .
    2. Selecione Configurações e selecione a guia Preferências .
    3. Verifique se a opção Servidores de Símbolo Público da Microsoft no campo Caminho da Pesquisa de Símbolos está marcada e selecione Voltar.
    4. Selecione a opção Análise Padrão \ CrashHangAnalysis .
    5. Selecione Adicionar Arquivos de Dados.
    6. Selecione os arquivos de despejo que você deseja analisar.
    7. Selecione Iniciar Análise.

    O relatório HTML resultante é exibido em uma nova janela do Microsoft Internet Explorer na área de trabalho e salvo no diretório DebugDiag Reports. O local padrão para esse diretório é %USERPROFILE%\Documents\DebugDiag\Reports.

  3. Para resolve o problema, siga as diretrizes fornecidas na seção Recomendações do relatório. Esta seção do relatório pode recomendar as seguintes coisas:

    • Ele pode direcioná-lo para um artigo da Base de Dados de Conhecimento da Microsoft que descreve problemas conhecidos.
    • Ele pode fornecer aos desenvolvedores do aplicativo informações que eles podem usar para fazer correções.
    • Isso pode sugerir que você siga com o fornecedor apropriado ou com Suporte da Microsoft. Quando entrar em contato com Suporte da Microsoft para obter mais ajuda, forneça o arquivo de relatório para acelerar o processo de análise. O arquivo de despejo completo também pode ser necessário.

Considerações

Aqui estão alguns fatores que você deve considerar.

Valor do registro AverageCallThreshold

Um valor de 300 segundos é um limite apropriado para a maioria dos ambientes. O valor ideal depende do ambiente específico. Para garantir que a ação seja tomada o mais rápido possível, mas somente quando ocorrer um problema legítimo, selecione o menor valor possível que é excedido apenas em um cenário problemático.

Valor do Registro de TerminateProcess

Encerrar o processo quando ocorrem altas horas de chamada pode ajudar o componente COM+ a se recuperar automaticamente de determinados problemas. Isso é desejável em ambientes em que a alta disponibilidade é importante. Ao usar esse recurso, selecione um valor de registro apropriado AverageCallThreshold para evitar que o processo seja encerrado involuntariamente.

Valor do registro do DumpType

Arquivos de minidump podem ser criados mais rapidamente e ocupar menos espaço em disco do que arquivos de despejo completos. No entanto, eles não são tão úteis para analisar problemas porque muitas vezes não têm os dados necessários. O tamanho típico de arquivos de despejo completos para um processo deDllhost.exe varia de 10 megabytes (MB) a 50 MB. Seu tamanho real depende do tamanho do conjunto de trabalho do processo despejado. Os arquivos normalmente são gerados em segundos.

Opções de arquivo de despejo

Por padrão, os arquivos de despejo são armazenados no diretório %systemroot%\system32\com\dmp . Use as configurações na caixa Diretório de Despejo de Imagem e na área Número Máximo de Imagens de Despejo para o aplicativo COM+ apropriado para controlar o local e o número de arquivos de despejo.

Hora da chamada

O tempo de chamada de um componente COM+ é uma média de execução para todas as instâncias do componente COM+. O tempo de chamada é calculado pelo Aplicativo do Sistema COM+ e é exibido na coluna Tempo de Chamada (ms) da Exibição de Status no snap-in MMC dos Serviços de Componente.