COM+ prend en charge la collecte automatique du fichier de vidage de processus et l’arrêt du processus dans Windows Server
S’applique à : SDK Windows pour Windows 10
Numéro de la base de connaissances d’origine : 910904
Introduction
Le système enregistre un événement lorsqu’un composant COM+ rencontre un temps d’appel anormalement élevé. Le journal des événements identifie le composant COM+ qui rencontre le problème. En outre, le journal des événements mentionne cet article (910904). Le système peut être configuré pour effectuer l’une des actions suivantes ou les deux :
- Collectez automatiquement un fichier de vidage de processus pour l’analyse de la cause racine du problème.
- Terminez le processus pour vous aider à récupérer du problème sans intervention manuelle.
Une fois que le système a collecté un fichier de vidage, utilisez l’outil Diagnostics de débogage (DebugDiag) pour générer un rapport qui décrit le problème et fournit des solutions connues.
Comportement par défaut
Prenons l’exemple du scénario suivant :
- La durée d’appel d’un composant COM+ dépasse 10 minutes.
- Vous ouvrez le composant logiciel enfichable Microsoft Management Console (MMC) Services de composants pendant que l’application qui héberge ce composant COM+ de longue durée est en cours d’exécution.
Dans ce scénario, l’événement suivant est enregistré dans le journal des applications :
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>
Options de configuration
Importante
Cette section implique des modifications apportées au Registre. Suivez attentivement les étapes. Des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Sauvegardez le registre par précaution. Pour plus d’informations sur la procédure de sauvegarde et de restauration du Registre, consultez l’article Comment sauvegarder et restaurer le Registre dans Windows.
Le système peut être configuré pour effectuer l’une des actions suivantes, ou les deux, lorsqu’un composant COM+ de longue durée est détecté :
Collecter automatiquement un fichier de vidage de processus.
Terminez le processus.
Pour ce faire, utilisez les valeurs de Registre suivantes :
Nom de la valeur Type de données Description Valeur par défaut AverageCallThreshold
REG_DWORD
Seuil, en secondes, quand les actions appropriées seront effectuées 0 DumpType
REG_DWORD
0 = Générer un fichier de vidage complet ; 1 = Générer un fichier minidump ; 2 = Aucun fichier de vidage 0 Terminate
REG_DWORD
0 = Le processus se poursuit ; 1 = Le processus est terminé 0 Pour définir globalement des actions pour tous les composants COM+ sur l’ordinateur, ajoutez les valeurs de configuration sous la clé de Registre suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump
Pour définir les actions à entreprendre pour un composant COM+ spécifique, quels que soient les paramètres globaux, ajoutez les valeurs de configuration sous la clé de Registre suivante :
HKEY_CLASSES_ROOT\AppId\{<YourAppID>}\AutoDump\{<YourCLSID>}
Recommandations
Le contenu suivant montre comment case activée et analyser les fichiers de vidage complets.
Collecter les fichiers de vidage complets
Collectez un fichier de vidage complet lorsqu’un composant COM+ rencontre un temps d’appel anormalement élevé. Par exemple, créez la valeur de Registre unique suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump AverageCallThreshold = 300
Pour plus d’informations sur la sélection d’une valeur de Registre appropriée AverageCallThreshold
pour votre environnement particulier, consultez la section Considérations.
De même, collectez un fichier de vidage complet lorsqu’une exception non gérée se produit dans une application COM+. Pour ce faire, case activée la zone Activer le vidage d’image en cas d’erreur d’application case activée sous l’onglet Vidage dans les propriétés de chaque application COM+.
Analyser les fichiers de vidage
Pour analyser le fichier de vidage, procédez comme suit :
Téléchargez et installez l’outil de diagnostic de débogage (DebugDiag).
Utilisez l’outil Diagnostics de débogage pour générer un rapport d’analyse pour le fichier de vidage en procédant comme suit :
- Exécutez l’application DebugDiag Analysis à partir du menu Démarrer .
- Sélectionnez Paramètres, puis sélectionnez l’onglet Préférences .
- Vérifiez que l’option Serveurs de symboles publics Microsoft dans le champ Chemin de recherche de symboles est cochée, puis sélectionnez Précédent.
- Sélectionnez l’option Analyse par défaut \ CrashHangAnalysis .
- Sélectionnez Ajouter des fichiers de données.
- Sélectionnez le ou les fichiers de vidage que vous souhaitez analyser.
- Sélectionnez Démarrer l’analyse.
Le rapport HTML obtenu s’affiche dans une nouvelle fenêtre Microsoft Internet Explorer sur le bureau et est enregistré dans le répertoire DebugDiag Reports. L’emplacement par défaut de ce répertoire est %USERPROFILE%\Documents\DebugDiag\Reports.
Pour résoudre le problème, suivez les instructions fournies dans la section Recommandations du rapport. Cette section du rapport peut recommander les éléments suivants :
- Il peut vous diriger vers un article de la Base de connaissances Microsoft qui décrit les problèmes connus.
- Il peut fournir aux développeurs de l’application des informations qu’ils peuvent utiliser pour apporter des corrections.
- Il peut vous suggérer d’effectuer un suivi auprès du fournisseur approprié ou de Support Microsoft. Lorsque vous contactez Support Microsoft pour obtenir de l’aide, fournissez le fichier de rapport pour accélérer le processus d’analyse. Le fichier de vidage complet peut également être requis.
Considérations
Voici quelques facteurs que vous devez prendre en compte.
Valeur de Registre AverageCallThreshold
Une valeur de 300 secondes est un seuil approprié pour la plupart des environnements. La valeur idéale dépend de l’environnement particulier. Pour vous assurer que des mesures sont prises le plus rapidement possible, mais uniquement lorsqu’un problème légitime se produit, sélectionnez la valeur la plus petite possible qui est dépassée uniquement dans un scénario problématique.
Valeur de Registre TerminateProcess
L’arrêt du processus en cas de temps d’appel élevés peut aider le composant COM+ à récupérer automatiquement de certains problèmes. Cela est souhaitable dans les environnements où la haute disponibilité est importante. Lorsque vous utilisez cette fonctionnalité, sélectionnez une valeur de Registre appropriée AverageCallThreshold
pour éviter d’arrêter involontairement le processus.
Valeur de Registre DumpType
Les fichiers minidump peuvent être créés plus rapidement et occupent moins d’espace disque que les fichiers de vidage complet. Toutefois, ils ne sont pas aussi utiles pour analyser les problèmes, car ils manquent souvent des données requises. La taille classique des fichiers de vidage complet pour un processus Dllhost.exe varie entre 10 mégaoctets (Mo) et 50 Mo. Leur taille réelle dépend de la taille de l’ensemble de travail du processus de vidage. Les fichiers sont normalement générés en quelques secondes.
Options de fichier de vidage
Par défaut, les fichiers de vidage sont stockés dans le répertoire %systemroot%\system32\com\dmp . Utilisez les paramètres de la zone Répertoire de vidage d’image et sous la zone Nombre maximal d’images de vidage pour l’application COM+ appropriée pour contrôler l’emplacement et le nombre de fichiers de vidage.
Heure de l’appel
La durée d’appel d’un composant COM+ est une moyenne d’exécution pour toutes les instances du composant COM+. L’heure de l’appel est calculée par l’application système COM+ et est affichée dans la colonne Temps d’appel (ms) de la vue État du composant logiciel enfichable MMC Services de composants.