Fehler beim Wiederherstellen der Datenbank. Mit MS DTC konnte keine Verbindung hergestellt werden, um den Beendigungsstatus der Transaktion zu überprüfen.

Microsoft.SQLServer.2008.Error_recovering_database_._Could_not_connect_to_MSDTC_to_check_the_completion_status_of_transaction_1_5_Rule (Rule)

Knowledge Base article:

Zusammenfassung

Wenn Sie MS DTC zum Verwalten einer verteilten Transaktion über mehrere Server verwenden und es dabei zu einer Verbindungsunterbrechung kommt, ist der Status der verteilten Transaktion anschließend unbekannt oder zweifelhaft. Zu den häufig auftretenden Ursachen für Unterbrechungen gehören Folgende:

auf einem oder mehreren Computern, die an der verteilten Transaktion beteiligt sind. Wenn die Verbindung unterbrochen wurde, hinterlässt MS DTC alle Transaktionen, die zu diesem Zeitpunkt durchgeführt werden, in einem inkonsistenten Status. Die als zweifelhaft gekennzeichneten Transaktionen verursachen diese Symptome, da SQL Server nicht ermitteln kann, ob für die Transaktionen ein Commit oder ein Rollback ausgeführt werden soll, und MS DTC muss SQL Server mitteilen, wie zu verfahren ist.

Weitere Informationen zu den Fehlern 3437 und 3437 und der Meldung beim Starten von SQL Server, dass keine Verbindung mit DTC hergestellt werden konnte, finden Sie im Microsoft Knowledge Base-Artikel 306366.

Lösungen

Zum Auflösen inkonsistenter verteilter Transaktionen gibt es mehrere unterschiedliche Verfahren:

Um die MS DTC-Verwaltungskonsole zu verwenden, führen Sie die folgenden Schritte aus:

. Geben Sie mmc.exe im Dialogfeld "Ausführen" ein, um Microsoft Management Console (MMC) zu öffnen.

. Klicken Sie im MMC-Konsolenmenü auf "Snap-In hinzufügen/entfernen".

. Klicken Sie im Dialogfeld "Snap-In hinzufügen/entfernen" auf "Hinzufügen".

. Klicken Sie im Dialogfeld "Eigenständiges Snap-In hinzufügen" auf "Komponentendienste", und klicken Sie auf "Hinzufügen", um das Snap-In hinzuzufügen.

. Klicken auf 'Schließen'

. Klicken Sie im Dialogfeld "Snap-In hinzufügen/entfernen" auf "OK".

. Erweitern Sie im Konsolenstamm unter "Komponentendienste" den Eintrag "Komponentendienste", zeigen Sie auf "Computer" und dann auf "Arbeitsplatz", und klicken Sie anschließend auf "Distributed Transaction Coordinator".

. Wählen Sie "Transaktionsliste" aus. Im Detailfenster werden die Transaktionen angezeigt. Klicken Sie mit der rechten Maustaste auf die Transaktion, und klicken Sie dann auf "Auflösen". Sie können nun zwischen drei Optionen auswählen: "Commit", "Abbrechen" oder "Verwerfen". Wählen Sie die Option, die für Ihre Situation geeignet ist.

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

1

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID3437
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Fehler beim Wiederherstellen der Datenbank. Mit MS DTC konnte keine Verbindung hergestellt werden, um den Beendigungsstatus der Transaktion zu überprüfen.
{0}
Event LogApplication
CommentMom2008ID='{6B1C776D-E075-4F73-B9C0-66CEF9024905}';MOM2008GroupID={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.2008.Error_recovering_database_._Could_not_connect_to_MSDTC_to_check_the_completion_status_of_transaction_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{6B1C776D-E075-4F73-B9C0-66CEF9024905}';MOM2008GroupID={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>3437</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.2008.Error_recovering_database_._Could_not_connect_to_MSDTC_to_check_the_completion_status_of_transaction_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>