How to Install a Clustered SQL Server 2012 Instance – Part 4

Posted in: Microsoft SQL Server, Technical Track

We have reached the last article of this series. To close this series out, we will talk about Distributed Transaction Coordinator, or simply DTC. I’ll try to do some simple explanation. After that, I’ll demonstrate how to prepare the DTC for a clustered instance.

What is DTC (MS DTC)?
The MS DTC is a OS level service, which comes automatically installed and running under the Network Service account. Its role is to ensure that a distributed transaction is consistent, even with failures.
Those transactions might be initiated when a transaction is dealing with data on multiple computers via network or when the transaction is dealing with multiple processes in a single computer.

All the participants of a distributed transaction works in sync with the other participants (computers) involved in a transaction, looking for the right moment to commit or abort its work. For this reason, we need to make sure that the computers can reach each other.

Do I need to configure MS DTC on my environment?
The answer for this question is the standard for almost everything involved with SQL Server; It depends. You need to understand whether or not you will perform distributed transactions. If you have more than one instance in the same computer (without aditional componentes installed), you won’t need the DTC. On the other hand, if you have a two nodes cluster with two clustered instances communicating with each other, you will need the DTC – the instances could be in different nodes. Another possible scenario is when you have the database engine and SSIS installed, in this case you will need to configure the DTC.

For more information, check this link:

How to create a clustered MS DTC?

Since Windows 2008, we are allowed to have more than one instance of MS DTC in a server/cluster. So, for clustered SQL Server installations is a best practice to have a Role exclusively for the DTC and a dedicated DTC for each SQL Server Role.

As documented per Microsoft, the SQL Server follow this path to choose the MS DTC instance to use:

  • Use MS DTC installed to the local group, else
    • Use the mapped instance of MS DTC, else
      • Use the cluster’s default instance of MS DTC, else
        • Use the local machine’s installed instance of MS DTC

To configure a DTC in cluster, we will need a disk and a hostname.

To configure a Role exclusively for the DTC, follow the steps:

  1. Right-click on Roles and pick the “Configure Role” option.
    Screen Shot 2014-01-02 at 14.18.43
  2. A new window will open. Click “next”.Screen Shot 2014-01-02 at 14.18.52
  3. Choose the option “Distributed Transaction Coordinator (DTC)” from the list. Click  “Next”.Screen Shot 2014-01-02 at 14.19.11
  4. Fill the hostname in the “Name” field and the IP in the “Network” section. Click “Next”.Screen Shot 2014-01-02 at 14.20.33
  5. Pick up the disk to be used. Click “Next”.Screen Shot 2014-01-02 at 15.14.42
  6. Review the configurations and click “Next”.Screen Shot 2014-01-02 at 15.14.57
  7. The installation will run and in the last step you will see a report. Click “Finish”.Screen Shot 2014-01-02 at 15.15.11
  8. Now you will be able to see a new Role created in the cluster, with all the indicated resources.

Screen Shot 2014-01-02 at 15.16.51

To add a DTC resource into the SQL Server Role, follow the steps:

  1. Right-click the Role, go to “Add Resource”->”More Resources” -> “Distributed Transaction Coordinator”.Screen Shot 2014-01-02 at 15.30.50
  2. The resource will be created in the selected Role, now we need to configure it. Right-click the “New Distributed Transaction Coordinator” and click on “Properties”.Screen Shot 2014-01-02 at 15.31.20
  3. As referred early on this article, the DTC needs a hostname and a disk to work. On dependencies you can pick up those items as shown, and click “ok”.Screen Shot 2014-01-02 at 15.32.44
  4. Now, let’s bring it online.Screen Shot 2014-01-02 at 15.32.55

How to configure the network for distributed transactions?

Note: On clustered environments,you just need to perform the following steps one time.

  1. On “Server Manager” go to “Tools”->”Component Services” or run the command “dcomcnfg”.Screen Shot 2014-01-02 at 15.33.55
  2. Expand the tree, right-click the desired DTC and choose “Properties”.Screen Shot 2014-01-03 at 11.46.28
  3. Go to the “Security” tab and check “Network DTC Acess” as well as “Allow Inbound” and “Allow Outbound”, as shown bellow. Click Ok.Screen Shot 2014-01-03 at 11.49.02
  • Let’s briefly describe the some of the options on this window:
    • Network DTC Access“: Enable/Disable the network access.
    • Allow inbound“:  Permit a distributed transaction originated from another computer to run on the current computer.
    • Allow outbound“:  Permit a distributed transaction initiated in the current computer to run on a remote computer.
    • Enable XA transactions” and “Enable SNA LU 6.2 Transactions“: Enables/Disable those particular specifications for distributed transactions.

Troubleshooting DTC

There’s a tool called DTC Ping which can help us to verify if the DTC is working correctly on all the computers that should be involved in a transaction.

You can download this tool here:

I recommend the reading of this article, to learn hos to use this tool, as well as troubleshoot the possible errors: Troubleshooting MSDTC issues with the DTCPing tool.

Another great tool is the DTC Tester. You can simulate a distributed transaction on SQL Server:

Screen Shot 2014-01-03 at 14.15.25

To download and get more info about this tool, check this link: .

The End

This way we finish this series about how to install a clustered instance. We still have too many details to cover and I will try to create separated articles with best practices, configuration alternatives, etc.

I hope you enjoyed this series and as always, if you have any doubts, contact me! Thank you for reading! If you want to check the other parts of this series, here are the links:


Pythian is a global leader in data consulting and managed services. We specialize in optimizing and managing mission-critical data systems, combining the world’s leading data experts with advanced, secure service delivery. Learn more about Pythian’s Microsoft SQL Server expertise or check out some more SQL Server-related blog posts

Want to talk with an expert? Schedule a call with our team to get the conversation started.

About the Author

Inspired by his father, Murilo has been passionate about IT since he was a child. When he broke their first PC at the age of 10, he was able to fix it on his own without his father finding out. Murilo’s passion for working with people coupled with his honesty have helped him establish effective, meaningful relationships with his clients. His colleagues can depend on him for any system-related issues, especially if it’s configuring a system from scratch. When he isn’t working, he can be found enjoying life with his family and watching football.

36 Comments. Leave new

The links for the previous parts do not work

Murilo Miranda
January 13, 2014 9:27 am

Hi Lia,
Could you try now?

Thank you!


wow, good tutorial, very helpfull

Murilo Miranda
March 18, 2014 12:06 pm

Thank you!

Varinder Sandhu
January 30, 2014 7:26 am

This is very helpful tutorial. very well explained.

Murilo Miranda
March 18, 2014 12:06 pm

Thank you Varinder!


Thanks for sharing……..Very good tutorial, Very well explained.

Murilo Miranda
March 18, 2014 12:07 pm

Thank You Wahid!


This is very good tutorial. well explained. Please insert 3 node failover cluster

Murilo Miranda
May 14, 2014 6:19 am

Hi! For a 2+ nodes, you just need to replicate the process of adding the second node. Is the same.


Hi Murilo,

Your steps are easy to follow and clear. May I asked what is the diff between configure a Role exclusively for the DTC and a dedicated for each SQL? How does they work together?

Murilo Miranda
May 14, 2014 6:25 am

Doing the referred configuration you will have a dedicated DTC instance for the SQL Server.
If you have more than one DTC instance configured, it will behave normally, as there’s an hierarchy to call the proper dtc instance:

SQL Server will…
…use MS DTC installed to the local group if available, else
Use the mapped instance of MS DTC if available, else
Use the cluster’s default instance of MS DTC if available, else
Use the local machine’s installed instance of MS DTC


Thank you.My first cluster is built succesfully. :)

Murilo Miranda
May 14, 2014 6:26 am

I’m happy in hear that :)


basic question excuse , im trying to understand the cluster installation

While configuring the 2nd node do we need to log in to the 2nd node and follow the steps … like setup etc …?

is there any step we need to do here for active active / acive passive….?

i mean if i wanted to have a setup active active / active passive where i need to configure…?

Murilo Miranda
June 20, 2014 3:57 pm

Yes, you meed to connect to all the nodes and run the setup in order to add a node to the clustered instance.

Regarding active-active cluster, in my opinion this is a wring designation, as a clustered instance is only active in one node per time.

When people say active-active, they are usually talking about a two nodes cluster, with two clustered instances installed and each one active in a different node than the other one.


Hi Murilo Miranda,

It was an excellent article. Thanks for sharing the knowledge. I have a question for you.
SQL Server Data tools is can be installed on clustered nodes ? its comes under Shared tools ?

Chyke McFarlane
August 8, 2014 9:24 am

Very well written article. Easy to follow and easy to replicate. Thank you very much.


Very good articles. But although I could connect to the instance ( SQL01\DB)through odbc datasource, I not could do same fron any client computers. Is there any extra steps required to connect the clients to aa FCI?


Very good articles. But although I could connect to the instance ( SQL01\DB)through odbc datasource from the cluster nodes, I could not do same fron any client computers. Is there any extra steps required to connect the clients to aa FCI?

Gaurav Shrivastava
October 31, 2014 6:50 am

This is very helpful for beginners, keep posting !!!!


I could not find the Storage available in the “Select Storage” step. Am I missing something. Please help.

Murilo Miranda
January 9, 2015 9:29 am

Hi Basha, probably you didn’t add the storage as cluster resource.


Awesome Tutorial


Hi Murilo,

Excellent tutorial, for beginners.

Thanks, keep your good work.

Expecting more.



sql service account can we map for SQL Server Engine and Agent service ?


I really enjoyed you writings on How to Install a Clustered SQL Server 2012 Instance – Part 1 through Part 4.

I am Oracle Certified Professional with practical experience/understanding of SQL Server 2005 and 2008.I properly attended sql server 2005 and 2008 official trainings with series of visual stdio trainings.

I need your help in Installing a Clustered SQL Server 2012 Instance for Production.
Can I just follow what you wrote here ?


Iam having one production server and another server for reports. Production server msdtc is available in the reportserver and from report application I am not able to update the table, at that time I am getting msdtc error. Oltp data is coming from production to report server thru always on feature. Ideas or suggestions welcome.

Satya Sai P
June 5, 2015 1:38 am

Good Article. Help me to install and know clustering in SQL 2012


This is awesome… very helpful .. Thanks a lot


Firstly, many thanks for your articles but I have one question. in this part you add DTC for MSQLserver which is default instance should we do the same steps on second instance DB or just doing it on default instance


Thanks for sharing the valuable information in a lucid manner.


How many IP’s are required for 2 node cluster and for 3 node cluster how many IP’s required …?

Jacob van Zanen
April 20, 2016 6:03 pm

depends :-)

1 IP for each node of the cluster
1 IP for cluster
1 IP for always on Listener (if Configured)
if active/active setup you may have another IP for each instance as well


It is simply awesome.


Dear Murilo Miranda,

How many IP’s are required for 2 node cluster.


Leave a Reply

Your email address will not be published. Required fields are marked *