SYMPTOMS
When you have a Microsoft SQL Server 2000 virtual server in
a Microsoft Windows Server 2003 clustered environment, distributed transactions
may not be completed successfully. When the distributed transaction is
performed, you receive the following error message:
Server: Msg 8501, Level 16, State 3, Line 1 MSDTC on server
'VirtualServerName' is unavailable.
Additionally, from your Microsoft Transaction Server (MTS)
application, you receive the following error message when you connect to SQL
Server:
Error: -2147168228 Microsoft ODBC SQL Server
Driver [MSDTC] MSDTC on server 'VirtualServerName'
is unavailable.
Note In these error messages,
VirtualServerName is the SQL Server 2000 virtual
server name.
Sometimes,
you may also receive the following error message:
Server: Msg 7391, Level 16, State 1, Procedure spStoredProcedure, Line 58
The operation could not be performed because the OLE DB provider
'SQLOLEDB' was unable to begin a distributed transaction. [OLE/DB provider
returned message: Connection failure] OLE DB error trace [OLE/DB Provider
'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d01c].
CAUSE
This problem occurs when the following conditions are true:
- This SQL Server 2000 virtual server is in a Windows Server
2003 clustered environment.
- The Microsoft Distributed Transaction Coordinator (MSDTC)
resource and SQL Server 2000 virtual server are not in the same cluster
group.
- The MSDTC resource starts after the SQL Server virtual
server has started.
Note This problem does not occur in Windows 2000 Server
clusters.
RESOLUTION
A supported hotfix is now available from Microsoft.
For more information
about how to obtain this hotfix, click the following article number to view the article in the Microsoft Knowledge Base:
821751
Availability of Windows Server 2003 COM+ 1.5 Rollup Package
1