By default, the Microsoft Distributed Transaction Coordinator (MSDTC) service is installed by in Windows 2000. You cannot uninstall it by using Add/Remove Programs. This article describes how to recover from a problem with a Distributed Transaction Coordinator Resource in a Windows 2000 cluster. Typically, you experience this problem when you install a program that uses the DTC Resource. Programs such as Microsoft SQL Server, Microsoft Message Queuing, Microsoft Exchange 2000 Server, and Microsoft Exchange Server 2003 can use DTC when they are running in a server cluster.
Microsoft only supports running MSDTC on cluster nodes as a clustered resource. If SQL Server is clustered, only one clustered instance of MSDTC is required to support the maximum number of instances of SQL. The recommended procedure for installing an MSDTC Resource is to install it in its own resource group with its own disk and IP resources. If the MSDTC resource has already been installed, regardless of the location, and the applications that are using it are functioning correctly, we recommend that you leave it in that location. If the cluster is not yet in production, the following procedures can be used to move the MSDTC resource to a group other than the Cluster Group.
The MSDTC Cluster Resource will install in the first group that has a Physical Disk, IP Address and Network Name Resource configured and Online. Failure to make those resources available and online in a group other than the Cluster Group will cause the DTC Resource to be installed in the Cluster Group when you run the Comclust.exe command. By default, the Cluster Group contains the following resources:
- Cluster IP Address
- Cluster Name
- Quorum (Physical Disk with the /MSCS folder)
However, as previously stated, if the clustered MSDTC resource has already been put in the Cluster group and it is Online and it fails over correctly between all nodes. Then it can remain in the Cluster Group.
In an Exchange 2000 cluster or in an Exchange 2003 cluster, it is a best practice to leave the clustered MSDTC resource in the cluster group. Exchange accesses this functionality only during the initial installation process and when any Exchange specific service packs are applied.
For more information about SQL Server-specific instructions for moving or recovering the MSDTC resource on clustered SQL Server installations, click the following article number to view the article in the Microsoft Knowledge Base:
How to rebuild or move MSDTC used with a SQL failover cluster
Additionally, you may experience issues with the MSDTC log file that should be located on the first Physical Disk Resource in the group in which you installed the DTC Resource.
This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
How to back up and restore the registry in Windows
If you experience issues with the MSDTC service, or a DTC Resource in a Windows 2000 cluster, you can use one of the procedures described in this section to recover.
MSDTC Cluster Resource Is Mistakenly Installed in the Cluster Group
If the DTC Resource was mistakenly installed in the Cluster Group, follow these steps to move it to the correct group. You should not use the Change Group functionality in Cluster Administrator to accomplish this task.
- Start Cluster Administrator. In the Cluster Group, locate the MSDTC Resource, take it offline, and then delete it.
Note Ensure that you delete all dependencies on this MSDTC Resource before performing this operation, or you may receive error messages prompting you to delete the dependencies before you can take the resource offline, or delete it.
- Use Registry Editor (Regedt32.exe) to ensure that the following registry keys have been deleted on both nodes:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC (requires manual removal)
- Move the Cluster Group to the other cluster node. Verify that the Cluster Group is online on the other node before proceeding to the next step.
- Create the following resources in the desired group:
- The IP Address Resource that the MSDTC Resource will use. Bring the resource online.
- The Network Name Resource that the MSDTC Resource will use. Make this dependent on the MSDTC IP Address Resource that you created in the previous step. Bring this resource online.
- The Distributed Transaction Coordinator Resource that is dependent on the MSDTC Network Name, and the Physical Disk where the Dtclog folder will be located (see next step). Leave this resource in an offline state.
- Copy the Dtclog folder from the %WinDir%\System32 folder to the first physical disk resource in the group in which you want the MSDTC resource to be installed.
- Run the comclust command on node A, and then on node B.
Note If you receive the following error message reboot all nodes and try step 6 again:
C:\Documents and Settings\Administrator>comclust Setting up MS DTC. Setup found that the current configuration of the cluster does not contain any resource groups in which the MS DTC resource can be created. Setup of MS DTC requires that the cluster contain at least one resource group that contains both a network name resource and a shared disk resource. Setup also requires that this resource group be owned by the first node in the cluster on which setup is run. Please re-run setup after the appropriate changes to the cluster configuration have been made.
If you have Cluster Administrator open on the desktop, you will notice the MSDTC Resource transitioning through several states including Failed, Offline, and Online Pending, finally stabilizing in the Online state. At this point, you can perform a failover test by using the Move Group functionality in Cluster Administrator.
MSDTC Log Issues
If you suspect an issue with the MSDTC log, you can flush any existing packets in the MSDTC log by running the msdtc.exe -resetlog
The msdtc -resetlog
command is a dangerous operation; verify that you do not have active transactions when you perform this operation.