Diese Regel löst eine Warnung, aus, wenn SQL Server keine neue oder vorhandene verteilte Transaktion eintragen kann.
Die Meldung erscheint, wenn eine neue oder vorhandene MSDTC (Microsoft Distributed Transaction Coordinator)-Transaktion von SQL Server nicht aufgeführt werden kann.
Fehler dieser Art können verschiedene Ursachen haben. Der Status des Fehlers, der zum Fehler ausgegebene spezifische Fehlercode sowie sonstige Fehler, die in etwa zur gleichen Zeit aufgetreten sind, können bei der Suche nach der Ursache des Fehlers bei der Auflistung hilfreich sein. Fehler bei der Auflistung sind oft Anzeichen eines Kommunikationsproblems wie einer fehlgeschlagenen Namensauflösung. Sie können auch auf die Art des Aufbaus der aufrufenden Anwendung oder auf Blockier- oder Leistungsprobleme von SQL Server zurückzuführen sein.
Überprüfen Sie, ob MS DTC auf beiden an der MS DTC-Transaktion teilnehmenden Computern gestartet wurde. Wenn der MS DTC-Dienst in einem Cluster ausgeführt wird, vergewissern Sie sich in der Clusterverwaltung, dass er online ist.
Suchen Sie in den Ereignisprotokollen nach den Servern, die an der MS DTC-Transaktion beteiligt waren, um festzustellen, ob andere Fehler ungefähr zur selben Zeit wie diese Meldung protokolliert wurden. Falls andere Fehler aufgetreten sind, sollten Sie diese zunächst beheben, da dieser Fehler häufig eine Nebenerscheinung anderer Fehler ist.
Standardmäßig ist der Netzwerkzugriff auf MS DTC in Windows Server 2003 deaktiviert. Überprüfen Sie, ob MS DTC aktiviert wurde, wenn auf einem beteiligten Computer Windows Server 2003 ausgeführt wird.
Überprüfen Sie, ob die RPC-Kommunikation zwischen den beteiligten Servern ordnungsgemäß funktioniert.
Starten Sie die an der MS DTC-Transaktion beteiligten Server neu, um alle IP-Adressinformationen zu leeren.
Stellen Sie sicher, dass die Transaktionstimeouteinstellungen für die aufrufende COM+-Komponente groß genug sind, um ein Timeout zu vermeiden, das dazu führen würde, dass eine separate Komponente versucht, sich für eine Transaktion einzutragen, für die bereits ein Timeout aufgetreten ist.
Wenn Sie die SQL Server-Konfigurationsoption "lightweight pooling" (auch als "Fibermodus" bezeichnet) aktiviert haben, sollten Sie sie wieder deaktivieren. Prüfen Sie, ob der Fehler weiterhin auftritt.
Wenn Sie die SQL Server-Konfigurationsoption "Prioritätserhöhung" aktiviert haben, sollten Sie sie wieder deaktivieren. Prüfen Sie, ob der Fehler weiterhin auftritt.
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Priorität | Definiert die Warnungspriorität. | 1 |
Schweregrad | Definiert den Warnungsschweregrad. | 1 |
Target | Microsoft.SQLServer.2014.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 8510 | ||
Event Source | $Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2014ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2014.Enlist_of_MSDTC_transaction_failed_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';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>8510</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.Enlist_of_MSDTC_transaction_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>