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.
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.
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
To work around this problem, set the stand-alone instance of SQL Server on the cluster service to restart manually.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section of this article.
Steps to Reproduce the Problem
Set up one clustered instance of SQL Server on the active node.
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.
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 pubsGO BEGIN DISTRIBUTED TRANSACTION UPDATE authors SET au_lname = 'McDonald' WHERE au_id = '409-56-7008'