What exactly is MSDTC, any when do I need it?
Posted by: Denny Cherry
MSDTC (aka Microsoft Distributed Transaction Control) is a piece of software which a lot of people use, but they don’t really know what it does, or how it works.
MSDTC is used by SQL Server and other applications when they want to make a distributed transaction between more than one machine. A distributed transaction is simple a transactions which spans between two or more machines. The basic concept is that machine 1 starts a transaction, and does some work. It then connects to machine 2 and does some work. The work on machine 2 fails, and is cancled. The work on machine 1 needs to then be rolled back.
DTC is for the most part a black box. It just sort of works without much interaction exept for the initial setup.
The only time that DTC needs to be used is when more than one physical computer is going to be involved in an explicet distributed transaction. If you are going from one instance to another on the same server DTC will not be needed. If you are going from one instance to another within a cluster you will want to have DTC available as you may have to go between nodes of the cluster as you have no guarantee that the instances will be on the same physical node.
I hope this helps explain DTC a little bit at least. If you have specific questions about DTC, feel free to post them below and I’ll try and find the answers for you.
Denny




