"MSDTC Is Unavailable" Error When a Stand-Alone Instance of SQL Server Is in a Cluster Environment (822473)



The information in this article applies to:

  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Server

SYMPTOMS

By default, when a stand-alone instance of Microsoft SQL Server exists in a cluster environment, the SQL Server-based instance is set to start automatically. If the host node is rebooted, you may receive the following error message when you issue commands that are related to distributed transactions:
MSDTC on server 'servername' is unavailable.

CAUSE

After the Distributed Transaction Coordinator (DTC) proxy has initialized itself to talk to a specific DTC service, the only way to make any changes is to stop the process. In this situation, the stand-alone SQL Server-based service is started before the cluster SQL Server-based service. When the SQL Server-based service initializes the DTC proxy, the SQL Server-based service starts and then connects to the local DTC service. This is not correct behavior in a cluster environment.

RESOLUTION

How to Obtain the Hotfix

This issue is fixed in the Microsoft Windows 2000 Post-Service Pack 4 (SP4) COM+ 1.0 Hotfix Package 27. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

822618 INFO: Availability of Windows 2000 Post-Service Pack 4 COM+ Hotfix Rollup Package 27

WORKAROUND

To work around this problem, set the stand-alone instance of SQL Server on the cluster service to restart manually.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section of this article.

MORE INFORMATION

Steps to Reproduce the Problem

  1. Set up one clustered instance of SQL Server on the active node.
  2. Set up one stand-alone (nonclustered) instance of SQL Server on the secondary node. By default, the nonclustered instance of SQL Server and the SQL Server Agent service are set to automatic.
  3. In SQL Query Analyzer, connect to the sample PUB database in the stand-alone instance of SQL Server, and then issue the following command in SQL Query Analyzer:
    USE pubs
    GO BEGIN DISTRIBUTED TRANSACTION 
    UPDATE authors SET au_lname = 'McDonald' WHERE au_id = '409-56-7008'

Modification Type:MinorLast Reviewed:11/8/2004
Keywords:kbBug kbfix kbQFE kbWin2000preSP5fix KB822473 kbAudDeveloper