Die Regel löst eine Warnung aus, wenn SQL Server eine neue oder vorhandene verteilte Transaktion nicht eintragen kann.
Die Meldung wird angezeigt, wenn SQL Server eine neue oder vorhandene MS DTC-Transaktion (Microsoft Distributed Transaction Coordinator) nicht eintragen kann.
Fehler dieser Art können verschiedene Ursachen haben. Der Status des Fehlers, der mit dem Fehler zurückgegebene spezifische Fehlercode sowie sonstige Fehler, die etwa zur gleichen Zeit aufgetreten sind, können bei der Suche nach der Ursache des Eintragungsfehlers hilfreich sein. Fehler bei der Eintragung sind oft Anzeichen eines Kommunikationsproblems wie einer fehlerhaften 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 beteiligten 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 zur gleichen Zeit wie diese Meldung auch andere Fehler protokolliert wurden. Wenn dies der Fall ist, 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.
Überprüfen Sie, ob die Werte der 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.
Lesen Sie den Microsoft Knowledge Base-Artikel 307802, um festzustellen, ob Ihre Umgebung mit der im Artikel beschriebenen Umgebung genau übereinstimmt. Falls eine exakte Übereinstimmung gegeben ist, sollten Sie einen der Umgebungsfaktoren testweise ändern, um festzustellen, ob die Meldung weiterhin angezeigt wird. Wenn der Fehler nicht mehr auftritt, sobald die Umgebung nicht mehr der im Artikel beschriebenen Umgebung entspricht, wissen Sie, dass Sie die Fehlermeldung problemlos ignorieren können.
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Intervall (Sekunden) | Gibt das Wiederholungsintervall in Sekunden für die Ausführung des Workflows an. | 300 |
Priorität | Definiert die Warnungspriorität. | 1 |
Schweregrad | Definiert den Warnungsschweregrad. | 1 |
Synchronisierungszeit | Synchronisierungszeit |
|
Timeout (Sekunden) | Gibt die Zeit an, zu der der Workflow ausgeführt werden dann, bevor er geschlossen und als fehlerhaft markiert wird. | 200 |
Timeout für Datenbankverbindung (Sekunden) | Es tritt ein Fehler beim Workflow auf, und ein Ereignis wird registriert, wenn der Workflow nicht innerhalb des angegebenen Zeitraums auf die Datenbank zugreifen kann. | 15 |
Target | Microsoft.SQLServer.Windows.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.Enlist_of_MSDTC_transaction_failed_1_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>8510</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.Enlist_of_MSDTC_transaction_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>