Microsoft KB Archive/867520

From BetaArchive Wiki
Knowledge Base


You cannot start the Microsoft Distributed Transaction Coordinator (MSDTC) service on your Windows 2000 Server-based computer that is part of a server cluster

Article ID: 867520

Article Last Modified on 10/30/2006



APPLIES TO

  • Microsoft Windows 2000 Advanced Server



Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry


SYMPTOMS

On your Microsoft Windows 2000 Server-based computer that is part of a server cluster, you receive the following error message:

An error occurred while processing the last operation. Error code 8004E00F - COM+ was unable to talk to the Microsoft Distributed Transaction Coordinator.

You cannot start the Microsoft Distributed Transaction Coordinator (MSDTC) service.

The following events may be logged in the application event log:

Event ID: 4099
Type: Error
Source: COM+
Description:
The runtime environment was unable to initialize for transactions required to support transactional components. Make sure that MS DTC is running. (DtcGetTransactionManagerEx{}: hr = 0x8004d01b


Event ID: 4097
Type: Error
Source: MSDTC
Description:
MS DTC started with the following settings:
Security Configuration (OFF = 0 and ON = 1):
Network Administration of Transactions = 1,
Network Clients = 0,
Distributed Transactions using Native MSDTC Protocol = 1,
Transaction Internet Protocol (TIP) = 0, XA
Transactions = 1


Event ID: 4395
Type: Error
Source: MSDTC
Description:
MSDTC detected that MSDTC related information in the local registry is different from that in the shared cluster registry. Error Specifics: d:\nt\com\com1x\dtc\shared\mtxclu\mtxclusetuphelper.cpp:541,
CmdLine: C:\WINNT\System32\msdtc.exe, Pid: 796


Event ID: 4384
Type: Error
Source: MSDTC
Description:
MS DTC was unable to start because the installation was not configured to run on a cluster. Please run comclust.exe and restart MS DTC. Error Specifics: d:\nt\com\com1x\dtc\shared\mtxclu\mtxclusetuphelper.cpp:668,
CmdLine: C:\WINNT\System32\msdtc.exe, Pid: 796

CAUSE

This behavior occurs if the following conditions are true:

  • You installed the MSDTC service as a non-clustered resource on a Windows 2000 Server-based cluster.
  • You installed the MS04-012 software update.


Note The MS04-012 software update is included in the Windows 2000 post Service Pack 4 COM+ hotfix rollup package 27.

The MS04-012 software update includes a change to the MSDTC proxy (Msdtcprx.dll). The software update reveals the requirement to have the MSDTC service configured as a clustered resource. After you first install the update, the MSDTC service can start on the local cluster because the service is initialized before the Cluster service starts. However, if you stop the MSDTC service after the Cluster service is running, you cannot restart MSDTC until you restart the server.

For additional information about the MS04-012 update, click the following article number to view the article in the Microsoft Knowledge Base:

822473 Error when a stand-alone instance of SQL Server is in a cluster environment


Note If you install MSDTC as a non-clustered resource, this configuration could lead to orphaned transactions. Orphaned transactions can cause data corruption if a cluster failover occurs. We do not recommend or support this configuration. By default, Microsoft Windows Server 2003 requires MSDTC to be installed as a clustered resource.

RESOLUTION

To resolve this behavior, follow these steps:

Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

  1. Connect to both nodes by using a Terminal Services client or at the console.
  2. Move all resources to one node. This node becomes the active node.
  3. On both nodes, use Registry Editor to delete the following registry subkeys:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
    • HKEY_CLASSES_ROOT\CID

    To do this, follow these steps:

    1. Click Start, click Run, type regedit, and then click OK.
    2. Locate and then right-click the following registry subkey:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC

    3. Click Delete.
    4. Click Yes to confirm the deletion.
    5. Repeat steps a through d for the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC subkey and the HKEY_CLASSES_ROOT\CID subkey.
    6. Quit Registry Editor.
  4. On the active node, create the "DTClog" folder on the quorum drive. For example, create the Q:\DTClog folder.
  5. If you cannot see the quorum drive in Windows Explorer or at the command prompt, use the DCOMCNFG utility (Dcomcnfg.exe) to verify the configuration. To use the DCOMCNFG utility, follow these steps:

    Note If you have Oracle installed, this procedure may reset the values and lock out the administrator accounts and the system account.
    1. Click Start, click Run, type dcomcnfg, and then click OK.
    2. Click the Default Security tab.
    3. Under Default Access Permissions, click Edit Default.
    4. Verify the following default access permissions:
      • SYSTEM Allow Access
      • INTERACTIVE Allow Access
      • Administrators Allow Access

      If an entry is missing, click Add, click the account that you want to add, click Add, and then click OK.

      Note You may also see an account for the cluster administrator account. This account is part of the administrators group. For example, if your cluster administrator account is named CLUSADMIN, you may see CLUSADMIN Allow Access.
    5. When you are finished, click OK.
    6. Under Default Launch Permissions, click Edit Default.
    7. Verify the following permissions:
      • SYSTEM Allow Launch
      • INTERACTIVE Allow Launch
      • Administrators Allow Access
      If an entry is missing, click Add, click the account that you want to add, click Add, and then click OK.
    8. When you are finished, click OK two times.
    9. If you change the DCOMCNFG utility settings, you must log off and then log on to gain the access permissions.
  6. On both nodes, stop the MSDTC service. To do this, type the following command at a command prompt, and then press ENTER:

    net stop msdtc

    Verify that a message is displayed that indicates that the MSDTC service was stopped successfully.
  7. On both nodes, remove MSDTC. To do this, type the following command at a command prompt, and then press ENTER:

    msdtc -uninstall

  8. On both nodes, verify that the Distributed Transaction Coordinator service was removed from the Services snap-in. To start the Services snap-in, click Start, click Run, type services.msc, and then click OK.
  9. Install MSDTC as a clustered resource on both the active node and the passive node. First, install MSDTC on the active node. Then, install MSDTC on the passive node. To do this, follow these steps:
    1. On the active node, type the following command at a command prompt, and then press ENTER:

      comclust

      After the COM Cluster Wizard (Comclust.exe) has finished running, the program returns you to the command prompt. Do not close the command prompt.
    2. On the passive node, type the following command at a command prompt, and then press ENTER:

      comclust

      After the COM Cluster Wizard has finished running, the program returns you to the command prompt.
    3. Close the command prompt on the passive node. You must close the command prompt on the passive node first.
    4. Close the command prompt on the active node.

    For additional information about how to install MSDTC as a clustered resource in a Windows 2000 environment, click the following article number to view the article in the Microsoft Knowledge Base:

    290624 How to configure MSDTC in a Windows 2000 cluster environment

  10. Verify that no errors messages appear and that the MSDTC service is installed. Also, verify that the MSDTC resource is added to the cluster group.

    Note If you receive the following error message, restart all nodes and then try step 9 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.

  11. Make sure that the MSDTC clustered resource is working correctly. To do this, try the following:
    1. Verify that you can move the cluster group from one node to another and then back again.
    2. Verify that you can run the Component Services snap-in without errors. To do this, click Start, point to Programs, point to Administrative Tools, and then click Component Services. In the Component Services snap-in, expand Component Services, expand Computers, expand My Computer, and then expand COM+ Applications.
    3. Use Event Viewer to examine the system event log and the application event log for related errors messages.


REFERENCES

For additional information about MSDTC as a clustered resource, click the following article numbers to view the articles in the Microsoft Knowledge Base:

305742 You may receive error messages when you start MSDTC on a node of a cluster server


296313 Setup fails when MS DTC is not configured as a cluster resource


301600 How to configure Microsoft Distributed Transaction Coordinator on a Windows Server 2003 cluster



Additional query words: MSCS

Keywords: kbclustering kberrmsg kbtshoot kbprb KB867520