Commit of internal MSDTC transaction failed

Microsoft.SQLServer.2012.Commit_of_internal_MSDTC_transaction_failed_1_5_Rule (Rule)

Knowledge Base article:

Summary

Microsoft Distributed Transaction Coordinator (MS DTC) can ask transaction participants, such as COM+ components or one or more SQL Server instances, to PREPARE as a part of the two-phase commit (2PC) protocol. If SQL Server responds that it is ready to COMMIT, but MS DTCs ask for an ABORT for any of a number of reasons, this error appears on the server that issued the COMMIT. Similarly, if SQL Server initiated the transaction request and it asked another participant to PREPARE, but in the meantime any of the participants requested an ABORT, the server that initiated the request will report this error.

Resolutions

This message is an indication of normal two-phase commit activity. If you are not sure which application or SQL Server query is calling MS DTC, you can use an SQL Profiler trace to capture which command was aborted.

Examples of reasons why the ABORT might be requested are:

The exact result code returned as a part of the message varies, and a search on the result code may provide more details about the root cause.

For more information about MS DTC, see "MS DTC Service," "Distributed Transactions," "Distributed Transactions Architecture," "Configuring Linked Servers," and "How Immediate Updating Works" in Books Online.

Overrideable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow.

Yes

Priority

Defines Alert Priority.

1

Severity

Defines Alert Severity.

1

Element properties:

TargetMicrosoft.SQLServer.2012.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8520
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Commit of internal MSDTC transaction failed
{0}
Event LogApplication
CommentMom2012ID='{A7060C45-95ED-4D39-9E2B-1DC2866C0AC4}';MOM2012GroupID={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.2012.Commit_of_internal_MSDTC_transaction_failed_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{A7060C45-95ED-4D39-9E2B-1DC2866C0AC4}';MOM2012GroupID={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>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.2012.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>