- 0 minutes to read

Learn how to configure the Microsoft Distributed Transaction Coordinator (MSDTC) Windows Service

Nodinite ensures data integrity and reliable outcomes for all client-server operations by leveraging the Microsoft Distributed Transaction Coordinator (MSDTC) Windows Service. This guide explains how to configure MSDTC for secure, scalable, and high-performance distributed transactions in your integration landscape.

✅ Guarantee data integrity for all distributed transactions
✅ Support for SQL Server, BizTalk, message queues, and more
✅ Step-by-step configuration for all Windows Server environments
✅ Troubleshooting tips and best practices for enterprise-grade reliability

Important

You must enable and configure the Microsoft Windows Distributed Transaction Coordinator for use with Nodinite as detailed on this page.

The Distributed Transaction Coordinator (DTC) service coordinates transactions that update transaction-protected resources, such as databases, message queues, and BizTalk Server. These resources may reside on a single system or be distributed across your network. Nodinite is built on enterprise-grade services and can scale to meet your needs.

Microsoft provides detailed information about the MSDTC Windows Service in this Technet article. Coding details are available on the 'Transaction Class' page.

Are there any prerequisites?

Yes. On Windows Server versions prior to 2016, you must enable the 'Distributed Transactions' server role. See the How do I add the Server Role on Windows 2012 and Windows 2012 R2 Server? section below.

On Windows Server 2016 and later, this role is pre-installed.

How do I configure the DTC service?

Regardless of your SQL Server setup (stand-alone, failover cluster, or Always On), ALL DTC services must be configured as described below on all SQL Server nodes and Nodinite application servers.

  • Open Component Services: Click Start, then Run, type 'dcomcnfg', and click OK
  • In the console tree, expand Component Services > Computers > My Computer > Distributed Transaction Coordinator > Local DTC
  • Right-click Local DTC and select Properties to open the Local DTC Properties dialog
  • Click the Security tab
  • Check the Network DTC Access checkbox
  • Check the Allow Remote Clients checkbox
  • Under Transaction Manager Communication:
    • Check Allow Inbound and Allow Outbound
    • Select No Authentication required
  • If you use IBM products, check Use XA Transactions
  • Click Apply, then OK
  • A message box will indicate the service will be restarted
  • Click OK
    Component Services
    Configuration of the MSDTC as Nodinite requires.

If your Windows Server is installed with failover cluster and is running SQL Server, the MSDTC service should be clustered in all roles with a SQL Server instance.

TCP port range

The default range of allowed TCP ports for MS DTC depends on your Windows version. Over time, IT policies or templates may have restricted this range, leading to connection issues. By default, MS DTC uses dynamic ports:

Windows Version Default Port range
Windows Server 2003 1024-65535
Windows Server 2008+ 49152-65535

Many articles suggest using 5000-5020, but this is too limited and not a Windows default.

  • A narrow range (e.g., 20 ports) is insufficient for enterprise workloads
  • The range should match or exceed Windows defaults for reliability

Change port range

  1. Start a Command Prompt and enter: dcomcnfg
  2. Expand Component Services > My Computer
  3. Right-click My Computer and select Properties
  4. Go to the Default Protocols tab, highlight Connection-oriented TCP/IP, and click Properties
  5. Add a range, e.g., '50000-50200'

Note

Even 200 ports may be too narrow. Adjust registry settings as needed to optimize TCP port usage.

Change listening start port

Before making changes, review these articles:

Note

Only change the default listening port if you cannot resolve connection or transaction issues after troubleshooting with Event Viewer and the DTC ping tool.

  1. Start Regedt32.exe
  2. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
  3. Right-click MSDTC, select New > DWord (32-bit) Value
  4. Name the key ServerTcpPort
  5. Right-click ServerTcpPort, select Modify
  6. Set to Decimal and enter 50000 (or your chosen port)
  7. Restart the MSDTC Service (stand-alone) or take the MSDTC Resource offline/online in Failover Cluster Manager if clustered

Important

For clustered DTC, change instance-specific registry settings (HKEY_LOCAL_MACHINE\Cluster\Resources\{Unique_DTC_ResourceID_GUID}\MSDTCPRIVATE\MSDTC) on all nodes.

Confirm correct port usage

  1. Open an Administrative command prompt and run Netstat –ano to get the start port and PID
  2. In Task Manager, select the Details tab
  3. Find MSDTC.exe and note the PID(s) (multiple for clustered instances)
  4. Validate that MSDTC is using the correct port range

Repeat MS DTC configuration changes equally on ALL servers for ALL MSDTC instances, local and clustered:

  • SQL Server instances
    • BizTalk
    • Nodinite
  • BizTalk Processing nodes
  • Nodinite App and Web Servers

Further reading

Failover Cluster

If your Windows Server is installed with failover cluster and is running SQL Server, the MS DTC service should be clustered in all roles with a SQL Server instance used with Nodinite.

The MS DTC is installed in each SQL Server Resource Group (every role).

  • This provides the best performance and isolation. It ensures your MSDTC instance always runs on the same physical node as SQL Server, reducing communication overhead.
  • Add a dependency so SQL Server does not start before the clustered DTC resource has started
  • Configure the clustered DTC with the settings detailed above

On which Windows Servers do I need to configure the MSDTC Windows Service?

Configure MSDTC on all Windows servers (Application Servers and SQL Servers/Instances) where Nodinite Core Services are installed.

On SQL Server with Failover Cluster, review the Failover Cluster section above.

How do I add the Server Role on Windows 2012 and Windows 2012 R2 Server?

As a local administrator, use Server Manager to enable the 'Distributed Transactions' server role. This feature is in the 'Application Server' section of the tree.

  1. Enable the 'Application Server' role
  2. Enable everything for the 'Distributed Transactions' role
    MSDTC
    Required server role 'Distributed Transactions' enabled

Frequently asked questions

How do I troubleshoot Microsoft DTC firewall issues?

You should first download and install the Microsoft DTCPing.exe tool .

Vital Test Steps

  • Make sure to perform tests for both directions, e.g. where the application server acts as the client and the SQL Server node act as the server, and if successful, in reverse
    • If you have multiple SQL nodes, you need to repeat this step for all combinations between the client and the server.
  • Make sure to test with node names and, if applicable, for fail-over cluster name(s) or SQL Server Always-on; the listener name(s).
  • From the Nodinite Web Client, make a test by changing the description for a User and clicking Save.

The local MS DTC detected that the MS DTC on %Server Name% has the same unique identity as the local MS DTC

If you see the following error in the Windows Event Log:

Important

The local MS DTC detected that the MS DTC on %Server Name% has the same unique identity as the local MS DTC.

The Root Cause for this problem is most likely due to an existing virtual machine being cloned. By creating a clone, the Id of the DTC Service is Not unique.

To resolve the problem; Reinstall the MS DTC service. By doing so, a new Id is created for the MS DTC Service.

Note

You need to be a member of the local administrators´ group to perform the actions listed below.

  1. At the command prompt, type msdtc -uninstall, and then press the ENTER key.
  2. At the command prompt, type msdtc -install, and then press ENTER key.
  3. Optionally if problems are still reported; Restart all Windows Servers that were part of the failing distributed transaction chain. Usually the following Windows Servers:
    • BizTalk Server processing nodes
    • BizTalk Server nodes where the ENTSSO service is installed
    • SQL Server nodes
    • Nodinite Application Server
    • Nodinite SQL Nodes

Next Step

Install Nodinite

Web Client
Log Agents