MSSQL 2014 : Échec de la validation de la transaction MSDTC interne

Microsoft.SQLServer.2014.Commit_of_internal_MSDTC_transaction_failed_1_5_Rule (Rule)

La règle déclenche une alerte en cas d'échec de la validation de la transaction MSDTC interne.

Knowledge Base article:

Résumé

MS DTC (Microsoft Distributed Transaction Coordinator) peut demander aux participants des transactions, comme les composants COM+ ou une ou plusieurs instances SQL Server, d’exécuter PREPARE dans le cadre du protocole de validation en deux phases (2PC). Si SQL Server répond qu’il est prêt à exécuter COMMIT, mais que MS DTC demande d’exécuter ABORT pour une raison donnée, cette erreur apparaît sur le serveur ayant émis l’instruction COMMIT. De même, si SQL Server a émis la demande de transaction et demandé à un autre participant d’exécuter PREPARE, mais qu’entre-temps l’un des participants a demandé un ABORT, le serveur ayant émis la demande signale cette erreur.

Solutions

Ce message indique une activité de validation normale en deux phases. Si vous ne savez pas quelle application ou requête SQL Server appelle MS DTC, vous pouvez utiliser une trace du Générateur de profils SQL pour capturer la commande ayant été abandonnée.

Exemples des motifs de demande de l'instruction ABORT :

Le code de résultat exact renvoyé dans le message varie. Une recherche dans ce code peut fournir des détails supplémentaires sur la cause initiale.

Pour plus d'informations sur MS DTC, consultez « Service MS DTC », « Transactions distribuées », « Architecture des transactions distribuées », « Configuration des serveurs liés » et « Fonctionnement de la mise à jour immédiate » dans la documentation en ligne.

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Priorité

Définit la priorité de l'alerte.

1

Severité

Définit la gravité de l'alerte.

1

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8520
Event Source$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2014 : Échec de la validation de la transaction MSDTC interne
{0}
Event LogApplication
CommentMom2014ID='{A7060C45-95ED-4D39-9E2B-1DC2866C0AC4}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2014.Commit_of_internal_MSDTC_transaction_failed_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{A7060C45-95ED-4D39-9E2B-1DC2866C0AC4}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>8520</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.Commit_of_internal_MSDTC_transaction_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>