Enlist of MSDTC transaction failed: %hs.

Details
Product: SQL Server
Event ID: 8510
Source: MSSQLServer
Version: 8.0
Component: SQL Engine
Message: Enlist of MSDTC transaction failed: %hs.
   
Explanation
This message occurs when an attempt is made to enlist a new or existing Microsoft Distributed Transaction Coordinator (MS DTC) transaction and that attempt fails.

The cause of the failure to enlist varies. 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 in your environment. 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 coded or a result of blocking or performance issues on the SQL Server side.

Under certain very specific conditions, when a second server process ID (SPID) attempts a new enlistment or makes a call to the sp_reset_connection stored procedure while the Microsoft Distributed Transaction Coordinator (MS DTC) transaction is being successfully interrupted or committed, the second SPID encounters a changing MS DTC transaction and generates the 8510 error message. The 8510 error message is considered unnecessary in these circumstances because the state of the transaction is already resolved before the error message occurs. For more information about this particular set of circumstances, see Microsoft Knowledge Base article 307802.

   
User Action
  • 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.

Related:

Leave a Reply