Sunday, April 5, 2015

MSDTC Service will not start after SQL Service Pack is applied

Recently a team in our company rolled out SQL service packs to a number of different servers (both SQL Server 2005 and 2008). When I was asked to check the state of the server afterwards, I noticed the MSDTC (Distributed Transaction Coordinator) service would not start.
The System Log reported the following error : 
Event ID : 7024
Details : The Distributed Transaction Coordinator service terminated with service-specific error %%-1073737712. 

and the Application Log included the following errors :
 Event ID : 4407
Details  : MS DTC Tracing infrastructure : the attempt to flush the existing trace data failed. Internal Information : none available.
 Event ID : 4404
Details : MS DTC Tracing infrastructure : the initialization of the tracing infrastructure failed. Internal Information : none available. 
 Event ID : 4163
Details : MS DTC log file not found. After ensuring that all Resource Managers coordinated by MS DTC have no indoubt transactions, please run msdtc -resetlog to create the log file. 

I checked the account the Distributed Transaction Coordinator service was running under, and re-applied the default security (NETWORK SERVICE account with a blank password) just to make sure. This made no difference.
After re-reading the Event ID 4163, it mentioned the log file was not found. The MSDTC log resides in C:\Windows\System32\Msdtc. I checked this directory and found the NETWORK SERVICE account had no permissions.
To fix the above issue, I gave the NETWORK SERVICE account full control of the C:\Windows\System32\Msdtc directory.
Once this was done, the Distributed Transaction Coordinator service started without any issues. I can only assume the SQL service pack applied on this server removed or changed permissions on this directory.

1 comment:

  1. "To fix the above issue, I gave the NETWORK SERVICE account full control of the C:\Windows\System32\Msdtc directory."

    It works for me.

    ReplyDelete