Do You Need MSDTC?
STIG requirement DG0016 specifies that you should not install any service you do not need, and if one is automatically installed and cannot be removed, it should be disabled.
The Microsoft Distributed Transaction Coordinator (MSDTC) is a Windows service, not a SQL Server service, but it's closely associated with SQL Server. Yet most DBA's don't interact with it, and may not know if it's being used. And even if you don't have any apps using SQL Server for distributed transactions, it may still be used by other services. So, if it's running but it's not being used, you need to disable it, but how do you determine if it's being used or not? There are several ways, but here's the easiest:
Log into the server as a Windows administrator.
Go to Start/Run (or the Start search box on later versions of Windows), enter dcomcnfg and hit Enter. Wait for the Component Services window to open (be patient), then drill into Component Services/Computers/My Computer/Distributed Transaction Coordinator/Local DTC/Transation Statistics.
So, if your server has been running for a long time and its MSDTC stats look like this:
...then your MSDTC is not being used, and you should disable it in Services (Start/Run/services.msc).
In case you're wondering where I stole this info, go to https://technet.microsoft.com/en-us/library/cc771686(WS.10).aspx and drill down. You'll find a wealth of info on managing MSDTC.
In addition, Microsoft provides a DTC Tester (https://support.microsoft.com/kb/293799) and a DTC Ping tool (https://www.microsoft.com/downloads/en/details.aspx?FamilyID=5e325025-4dcd-4658-a549-1d549ac17644&DisplayLang=en).
Comments
- Anonymous
May 13, 2014
Works fine for me.. - Anonymous
October 14, 2014
How do I detect a VB6 or .NET application is using a MSTC resource? - Anonymous
December 16, 2015
My Local DTC doesnot show transaction statistics but clustered shows transaction statics.
It means my application is using msdtc or not