Transaction distribuée arrêtée par MSDTC

Microsoft.SQLServer.2005.Distributed_transaction_aborted_by_MSDTC_1_5_Rule (Rule)

Knowledge Base article:

Résumé

MS DTC (Microsoft Distributed Transaction Coordinator) a demandé que l'instance de SQL Server qui participe à une transaction distribuée annule la transaction. Cette instruction ABORT a été émise avant qu'une instruction PREPARE de l'instance SQL Server n'ait été demandée.

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.

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.

Element properties:

TargetMicrosoft.SQLServer.2005.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8522
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Transaction distribuée arrêtée par MSDTC
{0}
Event LogApplication
CommentMom2005ID='{CCB1984B-CE37-434C-8752-DCAE743F874E}';MOM2005GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.2005.Distributed_transaction_aborted_by_MSDTC_1_5_Rule" Target="SQL2005Core!Microsoft.SQLServer.2005.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2005ID='{CCB1984B-CE37-434C-8752-DCAE743F874E}';MOM2005GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>8522</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.2005.Distributed_transaction_aborted_by_MSDTC_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>