The rule triggers an alert when SQL Server fails to enlist a new or existing distributed transaction.
This message occurs when SQL Server fails to enlist a new or existing MSDTC (Microsoft Distributed Transaction Coordinator) transaction.
There could be many root causes for an error of this kind. The state of the error, the specific result code returned with the error, as well as any other errors that occurred around the same time can help to determine why the enlistment failed. The failure to enlist is often a sign of a communications problem such as failed name resolution. It can also be the result of the way the calling application is designed or a result of blocking or performance issues on the SQL Server side.
Check that the MS DTC is started on both machines involved in the MS DTC transaction. If the MS DTC service is clustered, verify that it is online in Cluster Administrator.
Review the event logs for the servers involved in the MS DTC transaction to see if there are other errors at the same time as this message. If there are other errors, troubleshoot them first, because this error is often a side effect of other errors.
By default, network MS DTC access is disabled on Windows Server 2003. If any computer involved is running Windows 2003, verify that MS DTC has been enabled. For more information about how to enable network MS DTC access in Windows 2003, see Microsoft Knowledge Base article 817064
Verify that RPC communications between the servers involved is working correctly.
Reboot the servers involved in the MS DTC transaction to flush all IP address information.
Verify that the transaction timeout settings for the calling COM+ component are long enough to avoid a timeout that results in a separate component trying to enlist in a transaction that has already timed out
If you have turned on the SQL Server configuration option "lightweight pooling" (also known as "fiber mode") turn it back off. Test whether the error still occurs.
If you have turned on the SQL Server configuration option "priority boost," turn it back off. Test whether the error still occurs.
Review the Microsoft Knowledge Base article 307802 to see if your environment is an exact match for the environment in the article. If it is an exact match, test changing one of the environmental factors to see if the message stops occurring. If it stops once the environment no longer matches the article, you know the message can be safely ignored.
Name | Description | Default Value |
Enabled |
| Yes |
Generates Alerts |
| Yes |
Priority |
| 1 |
Severity |
| 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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>