MSSQL 2014: Commit zu interner MSDTC-Transaktion fehlgeschlagen

Microsoft.SQLServer.2014.Commit_of_internal_MSDTC_transaction_failed_1_5_Rule (Rule)

Diese Regel löst einen Fehler aus, wenn der COMMIT einer internen MSDTC-Transaktion fehlschlägt

Knowledge Base article:

Zusammenfassung

MS DTC (Microsoft Distributed Transaction Coordinator) kann bei Transaktionsteilnehmern wie COM+-Komponenten oder einen bzw. mehrere SQL Server-Instanzen die VORBEREITUNG als Teil des Zweiphasencommit (2PC)-Protokolls anfordern. Wenn SQL Server COMMIT-Bereitschaft signalisiert, können die MS DTCs aus unterschiedlichen Gründen ein ABBRECHEN anfordern; dieser Fehler wird auf dem Server angezeigt, von dem der COMMIT ausgegeben wurde. Wenn entsprechend SQL SERVER die Transaktionsanforderung initiiert und bei anderen Teilnehmern ein VORBEREITEN angefordert hat, mindestens einer dieser Teilnehmer in der Zwischenzeit jedoch ein ABBRECHEN angefordert hat, so wird von dem die Anforderung initiierenden Server dieser Fehler ausgegeben.

Lösungen

Diese Meldung ist ein Hinweis auf normale Zweiphasencommit-Aktivität. Wenn Sie nicht sicher sind, welche Anwendung oder SQL Server-Abfrage MS DTC aufruft, können Sie eine SQL Profiler-Ablaufverfolgung verwenden, um aufzuzeichnen, welcher Befehl abgebrochen wurde.

Beispiele für Gründe für die Anforderung des ABORT:

Der genaue, als Teil der Meldung zurückgegebene Ergebniscode variiert, und eine Suche nach diesem Ergebniscode ergibt möglicherweise mehr Details zur eigentlichen Ursache.

Weitere Informationen zu MS DTC finden Sie in den Themen zum MS DTC-Dienst, zu verteilten Transaktionen, zur Architektur verteilter Transaktionen, zum Konfigurieren verknüpfter Server und zur Funktionsweise sofortiger Aktualisierungen in der Onlinedokumentation.

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

 

Ja

Generiert Warnungen

 

Ja

Priorität

 

1

Schweregrad

 

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: Commit zu interner MSDTC-Transaktion fehlgeschlagen
{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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>