Microsoft KB Archive/230258

= INF: DTC Setup Changes Starting with SQL Server 6.5 SP5 and SQL Server 7.0 =

Article ID: 230258

Article Last Modified on 10/17/2003

-

APPLIES TO


 * Microsoft SQL Server 6.5 Standard Edition
 * Microsoft SQL Server 7.0 Standard Edition

-



This article was previously published under Q230258



SUMMARY
The Microsoft Distributed Transaction Coordinator (DTC) Setup program has been changed for SQL Server 6.5 Service Pack 5 and higher, including SQL Server 7.0.

With SQL Server 6.5 Service Pack 4 (SP4) releases and earlier, SQL Server Setup always installs Microsoft DTC 1.0 in the MSSQL\BINN directory, regardless of the current version of Microsoft DTC running on the system. No version checks are made before the DTC install, so any existing Microsoft DTC files are overwritten. Additionally, the setup of Service Pack 4 and earlier executes Msdtc.exe with the -Install option to initialize Microsoft DTC. If the system already has a newer version of Microsoft DTC installed the installation of SQL Server 6.5 Service Pack 4 and earlier may place the Microsoft DTC in an inconsistent state. For example, installing SQL Server 6.5 SP4 or lower on a system that currently has Microsoft Transaction Server 2.0 without installing the Windows NT Option Pack causes problems due to inconsistencies between the Microsoft DTC versions.

For additional information, please see the following article in the Microsoft Knowledge Base:

192680 PRB: Upgrading SQL Server 6.5 to the MTS 2.0 DTC Release

SQL Server 6.5 Service Pack 5 and higher and SQL Server 7.0 have been designed to correct this problem.



MORE INFORMATION
The setup of SQL Server 6.5 Service Pack 5 (SP5) and higher and SQL Server 7.0 include Microsoft DTC 3.0 components and the Microsoft DTC Setup program. Unlike the previous SQL Server releases, SQL Server 6.5 SP5 and higher and SQL Server 7.0 are version sensitive, ensuring that the latest version of Microsoft DTC Setup is on disk. These versions of SQL setup will first check to see if a newer version of the file Dtcsetup.exe exists on the system. If a newer version does exist on the system, SQL Setup will not copy the Microsoft DTC files to disk and will not run Microsoft DTC setup. However, if no newer version of the file is found, SQL Setup will copy the Microsoft DTC Setup program to the system directory (WINNT\SYSTEM32 for Windows NT or Windows 2000, Windows for Windows 95 or Windows 98) instead of the MSSQL\BINN directory. It then deletes the old version of the Microsoft DTC Setup program from the MSSQL\BINN directory and runs the new Microsoft DTC Setup. Note however, that a current bug in SQL Server 6.5 prevents this process from occurring correctly on Windows 2000 platforms.

Microsoft DTC Setup is Platform Specific
 Windows NT 3.51

SQL Server 6.5 Service Pack 5 and higher do not install Microsoft DTC due to the fact that Windows NT 4.0 is required in order to run the current version of DTC. SQL Server 7.0 is not supported on Windows NT 3.51, hence SQL Setup for 7.0 cannot be run on this platform. Windows NT 4.0

SQL Server 6.5 Service Pack 5 and higher and SQL Server 7.0 install Microsoft DTC as described at the beginning of the "More Information" section. Windows 2000

SQL Server 6.5 Service Pack 5 and higher was designed to install Microsoft DTC, as described at the beginning of the "More Information" section. However due to a current bug in SQL Server 6.5, when you install SQL Server Service Pack 5a on a Windows 2000 platform, the service pack install removes the Windows 2000 version of the service Distributed Transaction Coordinator (DTC) and replaces it with the MSDTC service from the SQL Server service pack. For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

249310 BUG: Install of SQL Server 6.5 on Windows 2000 Modifies DTC Service

SQL Server 7.0 setup first checks to see if the following registry key exists before installing Microsoft DTC on Windows 2000.

If the key is not found, SQL 7.0 Setup displays a dialog box warning the user that Microsoft DTC is not installed and that the user should install Microsoft DTC using the Windows NT Setup after SQL Server 7.0 has been installed. If the key is present, SQL setup will install Microsoft DTC as described above. Windows 95 or Windows 98

SQL Server 6.5 SP5 and higher and SQL 7.0 will install MSDTC as described at the beginning of the MORE INFORMATION section. Note that only client utilities for SQL 6.5 can be installed on a Windows 95 or Windows 98 computer.

In addition, the new SQL Server Setup program may create any of the following Registry keys to control Microsoft DTC Setup:
 * HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC\Setup\Silent

If this key is present, Microsoft DTC Setup is silent. The default installation is a non-Silent install, which will display dialogs for retryable conditions. If the Silent install option is used, the setup will exit with an exit code whenever an error occurs, regardless of whether the error is retryable. Note that this key does not suppress the file copy dialog.
 * HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC\Setup\ClientOnly

This key will be created if a SQL client-only install is requested. If the key is present, the Microsoft DTC does a client only setup. SQL Server will delete this key when a full Microsoft DTC install is requested and the key is present as a result of an earlier Microsoft DTC installation.

SQL Server performs Microsoft DTC Setup by executing the Dtcsetup.exe program located in WINNT\SYSTEM32 directory on Windows NT, or the Windows system directory on Windows 95 or Windows 98. When the Microsoft DTC installation is completed, a status code will be logged to the following registry key:

This key will contain the following values:

 Name                           Description ---   CompletionComment (REG_SZ)      An error description string. ErrorCode (REG_DWORD)          0 = Success 1 = No compatible Resource Groups were found. This is a Retryable error.

2 = Fresh Install on cluster but all Virtual Servers are owned by the other node in the cluster. Microsoft DTC setup requires that at least one Microsoft DTC compatible resource group be owned by the node on which DTC setup is                                        run if and only if that node happens to be the first node in                                        the cluster on which Microsoft DTC setup is run. (Retryable) 3 = Master Node Down - The node in the cluster on which Microsoft DTC setup was run first is down. This node must be running in order for Microsoft DTC setup to succeed. (Retryable) 4 = Miscellaneous (Non Retryable)

ExitCode (REG_DWORD)           0 = Success 1 = Non Retryable Failure 2 = Installation Failed with Retryable Error.

3 = Installation Failed.

Source (REG_DWORD)              Name of the Microsoft DTC Setup phase that generated the Exit Status.

For Clustering Setup, after the Microsoft DTC setup is successful on the local computer, SQL Server Setup then loops through all the other nodes in the cluster and runs Microsoft DTC setup remotely. If any of them fail with a retryable error, SQL Server Setup will not proceed with the Microsoft DTC installation on the other nodes unless the retryable error is dealt with. Note that LocalSystem account is not valid for remote install. Microsoft DTC Setup requires you to run under context that has permissions on the first node.