Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Traces de diagnostic [ws_fxtransactions_4]

Les suivis correspondent à la publication de messages spécifiques générés au cours de l'exécution de l'application. Pour utiliser le suivi, vous devez disposer d'un mécanisme de collecte et d'enregistrement des messages envoyés. Les messages de suivi sont reçus par des écouteurs. Le but d'un écouteur est de collecter, de stocker et de router les messages de suivi. Les écouteurs dirigent la sortie de suivi vers une cible appropriée, telle qu'un journal, une fenêtre ou un fichier de texte.

L'un de ces écouteurs, le DefaultTraceListener, est automatiquement créé et initialisé lorsque le suivi est activé. Pour que la sortie de suivi soit dirigée vers d'autres sources, créez et initialisez des écouteurs de suivi supplémentaires. Les écouteurs que vous créez doivent refléter vos besoins individuels. Par exemple, vous pouvez avoir besoin d'un enregistrement texte de toutes les données de sortie de suivi. Dans ce cas, vous devez créer un écouteur qui écrit toutes les données de sortie dans un nouveau fichier texte lorsque celui-ci est activé. En revanche, il est possible que vous ayez seulement besoin de consulter la sortie lors de l'exécution de l'application. Dans ce cas, vous pouvez créer un écouteur qui dirige toutes les données de sortie vers une fenêtre de console. EventLogTraceListener permet de diriger la sortie de suivi vers un journal des événements et TextWriterTraceListener permet de l'écrire dans un flux.

Pour activer les suivis lors du traitement transactionnel, vous devez modifier le fichier de configuration de votre application. Voici un exemple.

<configuration>
<system.diagnostics>
     <sources>
          <source name="System.Transactions" switchValue="Warning">
               <listeners>
                    <add name="tx" 
                     type="System.Diagnostics.XmlWriterTraceListener" 
                     initializeData= "tx.log" />
               </listeners>
          </source>
     </sources>
</system.diagnostics>
</configuration>

Les suivis System.Transactions sont écrits dans la source nommée "System.Transactions". Vous pouvez utiliser add pour indiquer les nom et type de l'écouteur de suivi à utiliser. Dans notre configuration exemple, nous avons nommé l'écouteur "tx" et ajouté l'écouteur de suivi standard .NET Framework (XmlWriterTraceListener) en tant que type à utiliser. Utilisez initializeData pour définir le nom du fichier journal de cet écouteur. Vous pouvez également substituer un chemin complet par un nom de fichier simple.

Chaque type de message de suivi se voit assigner un niveau indiquant son degré d'importance. Si le niveau de suivi du domaine d'application est inférieur ou égal au niveau d'un type d'événement, le message est généré. Le niveau de suivi est contrôlé par le paramètre switchValue du fichier de configuration. Les niveaux associés aux messages de suivi de diagnostic sont définis dans le tableau suivant.

Niveau de suivi

Description

Critical

Des défaillances sérieuses, telles que les défaillances suivantes, se sont produites :

  • Une erreur susceptible d'entraîner une perte immédiate des fonctionnalités utilisateur.

  • Un événement qui requiert l'intervention d'un administrateur afin d'éviter une perte de fonctionnalités.

  • Les pannes de code.

  • Ce niveau de suivi peut également fournir un contexte suffisant pour interpréter d'autres suivis critiques. Cela peut aider à l'identification de la séquence d'opérations causant une défaillance sérieuse.

Erreur

Une erreur (par exemple, une configuration invalide ou un comportement du réseau) susceptible d'entraîner une perte des fonctionnalités utilisateur s'est produite.

Avertissement

Il existe une condition susceptible d'entraîner une erreur ou une défaillance critique (par exemple, un échec d'allocation ou l'approche d'une limite). Le traitement normal d'erreurs dans le code utilisateur (par exemple, l'abandon d'une transaction, l'expiration d'un délai d'attente, un échec d'authentification) peut également entraîner la génération d'un avertissement.

Information

Des messages d'aide au contrôle et au diagnostic de l'état système, à la mesure des performances ou au profilage sont générés. Ils peuvent inclure des événements de durée de vie de transaction et d'inscription, tels qu'une transaction en cours de création ou de validation, le dépassement d'une limite importante ou l'allocation de ressources significatives. Un développeur peut ensuite utiliser ces informations pour la planification de capacité et la gestion des performances.

Le tableau suivant répertorie les codes de suivi générés par l'infrastructure System.Transactions. Ce tableau comprend l'identificateur du code de suvi, le niveau d'énumération EventType du suivi, ainsi que les données supplémentaires contenues dans le TraceRecord du suivi. Le TraceRecord contient également le niveau correspondant du suivi.

TraceCode

EventType

Données supplémentaires contenues dans TraceRecord

TransactionCreated

Info

TransactionTraceId

TransactionPromoted

Info

TransactionTraceId local, TransactionTraceId distribué

EnlistmentCreated

Info

TransactionTraceId, EnlistmentTraceId, EnlistmentType (durable/volatile), EnlistmentOptions

EnlistmentCallbackNegative

Avertissement

TransactionTraceId, EnlistmentTraceId,

Callback (forcerollback/aborted/indoubt)

TransactionRollbackCalled

Avertissement

TransactionTraceId

TransactionAborted

Avertissement

TransactionTraceId

TransactionInDoubt

Avertissement

TransactionTraceId

TransactionScopeCreated

Info

TransactionScopeResult, qui peut correspondre à l'un des éléments suivants :

  • Nouvelle transaction.

  • Transaction passée.

  • Transaction dépendante passée.

  • Utilisation de la transaction en cours.

  • Aucune transaction.

nouveau TransactionTraceId en cours

TransactionScopeDisposed

Info

TransactionTraceId de la transaction en cours « prévue » de l'étendue.

TransactionScopeIncomplete

Avertissement

TransactionTraceId de la transaction en cours « prévue » de l'étendue.

TransactionScopeNestedIncorrectly

Avertissement

TransactionTraceId de la transaction en cours « prévue » de l'étendue.

TransactionScopeCurrentTransactionChanged

Avertissement

Ancien TransactionTraceId en cours, autre TransactionTraceId

TransactionScopeTimeout

Avertissement

TransactionTraceId de la transaction en cours « prévue » de l'étendue.

DependentCloneCreated

Info

TransactionTraceId, type de transaction dépendante créée (RollbackIfNotComplete/BlockCommitUntilComplete)

DependentCloneComplete

Info

TransactionTraceId

RecoveryComplete

Info

GUID de gestionnaire de ressources (de base)

Reenlist

Info

GUID de gestionnaire de ressources (de base)

TransactionSerialized

Info

TransactionTraceId.

TransactionException

Erreur

Message d'exception

InvalidOperationException

Erreur

Message d'exception

InternalError

Critical

Message d'exception

TransferEvent

Lorsqu'une transaction est désérialisée ou promue de transaction System.Transactions à transaction distribuée, l'actuel ActivityID issu d'ExecutionContext et l'ID de la transaction distribuée sont écrits.

Lorsque le DTC rappelle le code managé, l'ID de la transaction distribuée est défini en tant qu'ActivityID dans ExecutionContext pour la durée du rappel.

ConfiguredDefaultTimeoutAdjusted

Avertissement

Aucune donnée supplémentaire

TransactionTimeout

Avertissement

Le TransactionTraceId de la transaction est sur le point d'expirer.

Le schéma XML des éléments de données supplémentaires précédents se présente au format suivant.

Ee818743.collapse_all(fr-fr,VS.120).gifTransactionTraceIdentifier

<TransactionTraceIdentifier>

<TransactionIdentifier >

string representation of transaction id

</TransactionIdentifier>

< CloneIdentifier >

the clone id number

</CloneIdentifier>

</TransactionTraceIdentifier>

Ee818743.collapse_all(fr-fr,VS.120).gifEnlistmentTraceIdentifier

<EnlistmentTraceIdentifier>

<ResourceManagerId>

string form of guid

</ResourceManagerId>

<TransactionTraceIdentifier>

<TransactionIdentifier >

string representation of transaction id

</TransactionIdentifier>

<CloneIdentifier >

the clone id number

</CloneIdentifier>

<TransactionTraceIdentifier>

<EnlistmentIdentifier>

the enlistment id number

</EnlistmentIdentifier>

</EnlistmentTraceIdentifier>

Ee818743.collapse_all(fr-fr,VS.120).gifIdentificateur de gestionnaire de ressources

<ResourceManagerId>

string form of guid

</ResourceManagerId>

Lorsque vous activez le suivi en tant qu'administrateur, il se peut que des informations sensibles soient écrites dans un journal de suivi à consultation publique par défaut. Pour éviter toute menace de sécurité, pensez à stocker le journal de suivi à un emplacement sécurisé contrôlé par des autorisations de partage et d'accès au système de fichiers.

Afficher: