Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

List of MS DTC bugs that are fixed in Windows Server 2003 Post-Service Pack 2 MS DTC Hotfix Rollup Package 13


View products that this article applies to.

Summary

This article lists the Microsoft Distributed Transaction Coordinator (MS DTC) bugs that are fixed in Microsoft Windows Server 2003 MS DTC Hotfix Rollup Package 13. This package contains the MS DTC-related hotfixes in Windows Server 2003 Post-Service Pack 2 COM+ 1.5 Hotfix Rollup Package 12. Starting with this package, Microsoft will release MS DTC hotfix rollup packages separately from Microsoft COM+ 1.5 hotfix rollup packages. Each package contains all the fixes that were released in the previous Windows Server 2003 MS DTC hotfix rollup package.

Issue that is fixed in the hotfix package

The following issue is fixed in this hotfix package. This issue was not previously documented in a Microsoft Knowledge Base article:

You have two connections to Microsoft SQL Server through two XA branches. If the XA branches have different XA transaction IDs (XID) and different global transaction IDs (GTRID), SQL Server obtains different DTC transaction IDs. Additionally, the operations on these branches will be isolated from one another. However, if the two XA branches have different XIDs but have the same GTRID, SQL Server still obtains a different DTC transaction ID from MS DTC. According to the XA specification, the following behavior is expected:
  • Different XA branches that have the same GTRID can be tightly coupled.
  • The XA branches can see one another's changes.
  • The XA branches should map to the same DTC transaction ID.
Note The current version of MS DTC does not support tightly coupled XA branch behavior.

↑ Back to the top


More information

Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

Prerequisites

You must have Windows Server 2003 Service Pack 1 or Windows Server 2003 Service Pack 2 installed to apply this hotfix rollup package.

Restart requirement

You must restart the computer after you apply this hotfix rollup package.

Hotfix replacement information

This hotfix does not replace any other hotfixes.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Windows Server 2003, x86-based versions
File nameFile versionFile sizeDateTimePlatformSP requirementService branch
Msdtc.exe2001.12.4720.29536,14411-Jun-200711:16x86SP1SP1QFE
Msdtclog.dll2001.12.4720.295376,28811-Jun-200723:19x86SP1SP1QFE
Msdtcprx.dll2001.12.4720.2953472,06411-Jun-200723:19x86SP1SP1QFE
Msdtcstp.dll2001.12.4720.295398,30411-Jun-200723:19x86SP1SP1QFE
Msdtctm.dll2001.12.4720.29531,053,69611-Jun-200723:19x86SP1SP1QFE
Msdtcuiu.dll2001.12.4720.2953166,40011-Jun-200723:19x86SP1SP1QFE
Mtxclu.dll2001.12.4720.295379,36011-Jun-200723:19x86SP1SP1QFE
Mtxoci.dll2001.12.4720.2953111,61611-Jun-200723:19x86SP1SP1QFE
Xolehlp.dll2001.12.4720.295310,75211-Jun-200723:19x86SP1SP1QFE
Msdtc.exe2001.12.4720.40976,14411-Jun-200711:30x86SP2SP2QFE
Msdtclog.dll2001.12.4720.409776,28811-Jun-200723:15x86SP2SP2QFE
Msdtcprx.dll2001.12.4720.4097469,50411-Jun-200723:15x86SP2SP2QFE
Msdtcstp.dll2001.12.4720.409798,30411-Jun-200723:15x86SP2SP2QFE
Msdtctm.dll2001.12.4720.40971,054,20811-Jun-200723:15x86SP2SP2QFE
Msdtcuiu.dll2001.12.4720.4097167,42411-Jun-200723:15x86SP2SP2QFE
Mtxclu.dll2001.12.4720.409779,36011-Jun-200723:15x86SP2SP2QFE
Mtxoci.dll2001.12.4720.4097111,10411-Jun-200723:15x86SP2SP2QFE
Xolehlp.dll2001.12.4720.409710,75211-Jun-200723:15x86SP2SP2QFE
Windows Server 2003, x64-based versions
File nameFile versionFile sizeDateTimePlatformSP requirementService branch
Msdtc.exe2001.12.4720.29536,65611-Jun-200712:47x64SP1SP1QFE
Msdtclog.dll2001.12.4720.2953142,33611-Jun-200723:20x64SP1SP1QFE
Msdtcprx.dll2001.12.4720.2953832,51211-Jun-200723:20x64SP1SP1QFE
Msdtcstp.dll2001.12.4720.2953131,07211-Jun-200723:20x64SP1SP1QFE
Msdtctm.dll2001.12.4720.29532,158,08011-Jun-200723:20x64SP1SP1QFE
Msdtcuiu.dll2001.12.4720.2953291,84011-Jun-200723:20x64SP1SP1QFE
Mtxclu.dll2001.12.4720.2953145,40811-Jun-200723:20x64SP1SP1QFE
Mtxoci.dll2001.12.4720.2953175,10411-Jun-200723:20x64SP1SP1QFE
Xolehlp.dll2001.12.4720.295310,75211-Jun-200723:20x64SP1SP1QFE
Wmsdtcprx.dll2001.12.4720.2953472,06411-Jun-200723:19x86SP1WOW
Wmsdtcuiu.dll2001.12.4720.2953166,40011-Jun-200723:19x86SP1WOW
Wmtxclu.dll2001.12.4720.295379,36011-Jun-200723:19x86SP1WOW
Wmtxoci.dll2001.12.4720.2953111,61611-Jun-200723:19x86SP1WOW
Wxolehlp.dll2001.12.4720.295310,75211-Jun-200723:19x86SP1WOW
Msdtc.exe2001.12.4720.40976,65611-Jun-200711:52x64SP2SP2QFE
Msdtclog.dll2001.12.4720.4097142,84811-Jun-200723:11x64SP2SP2QFE
Msdtcprx.dll2001.12.4720.4097834,56011-Jun-200723:11x64SP2SP2QFE
Msdtcstp.dll2001.12.4720.4097131,07211-Jun-200723:11x64SP2SP2QFE
Msdtctm.dll2001.12.4720.40972,158,59211-Jun-200723:11x64SP2SP2QFE
Msdtcuiu.dll2001.12.4720.4097290,81611-Jun-200723:11x64SP2SP2QFE
Mtxclu.dll2001.12.4720.4097145,40811-Jun-200723:11x64SP2SP2QFE
Mtxoci.dll2001.12.4720.4097175,10411-Jun-200723:11x64SP2SP2QFE
Xolehlp.dll2001.12.4720.409710,75211-Jun-200723:11x64SP2SP2QFE
Wmsdtcprx.dll2001.12.4720.4097469,50411-Jun-200723:15x86SP2WOW
Wmsdtcuiu.dll2001.12.4720.4097167,42411-Jun-200723:15x86SP2WOW
Wmtxclu.dll2001.12.4720.409779,36011-Jun-200723:15x86SP2WOW
Wmtxoci.dll2001.12.4720.4097111,10411-Jun-200723:15x86SP2WOW
Wxolehlp.dll2001.12.4720.409710,75211-Jun-200723:15x86SP2WOW
Windows Server 2003, Itanium-based versions
File nameFile versionFile sizeDateTimePlatformSP requirementService branch
Msdtc.exe2001.12.4720.29539,72811-Jun-200710:47IA-64SP1SP1QFE
Msdtclog.dll2001.12.4720.2953231,93611-Jun-200723:23IA-64SP1SP1QFE
Msdtcprx.dll2001.12.4720.29531,338,36811-Jun-200723:23IA-64SP1SP1QFE
Msdtcstp.dll2001.12.4720.2953241,15211-Jun-200723:23IA-64SP1SP1QFE
Msdtctm.dll2001.12.4720.29533,213,82411-Jun-200723:23IA-64SP1SP1QFE
Msdtcuiu.dll2001.12.4720.2953485,88811-Jun-200723:23IA-64SP1SP1QFE
Mtxclu.dll2001.12.4720.2953208,38411-Jun-200723:23IA-64SP1SP1QFE
Mtxoci.dll2001.12.4720.2953322,04811-Jun-200723:23IA-64SP1SP1QFE
Xolehlp.dll2001.12.4720.295318,43211-Jun-200723:23IA-64SP1SP1QFE
Wmsdtcprx.dll2001.12.4720.2953472,06411-Jun-200723:19x86SP1WOW
Wmsdtcuiu.dll2001.12.4720.2953166,40011-Jun-200723:19x86SP1WOW
Wmtxclu.dll2001.12.4720.295379,36011-Jun-200723:19x86SP1WOW
Wmtxoci.dll2001.12.4720.2953111,61611-Jun-200723:19x86SP1WOW
Wxolehlp.dll2001.12.4720.295310,75211-Jun-200723:19x86SP1WOW
Msdtc.exe2001.12.4720.40979,72811-Jun-200710:33IA-64SP2SP2QFE
Msdtclog.dll2001.12.4720.4097232,96011-Jun-200723:09IA-64SP2SP2QFE
Msdtcprx.dll2001.12.4720.40971,340,41611-Jun-200723:09IA-64SP2SP2QFE
Msdtcstp.dll2001.12.4720.4097241,15211-Jun-200723:09IA-64SP2SP2QFE
Msdtctm.dll2001.12.4720.40973,216,38411-Jun-200723:09IA-64SP2SP2QFE
Msdtcuiu.dll2001.12.4720.4097486,91211-Jun-200723:09IA-64SP2SP2QFE
Mtxclu.dll2001.12.4720.4097208,38411-Jun-200723:09IA-64SP2SP2QFE
Mtxoci.dll2001.12.4720.4097322,04811-Jun-200723:09IA-64SP2SP2QFE
Xolehlp.dll2001.12.4720.409718,43211-Jun-200723:09IA-64SP2SP2QFE
Wmsdtcprx.dll2001.12.4720.4097469,50411-Jun-200723:15x86SP2WOW
Wmsdtcuiu.dll2001.12.4720.4097167,42411-Jun-200723:15x86SP2WOW
Wmtxclu.dll2001.12.4720.409779,36011-Jun-200723:15x86SP2WOW
Wmtxoci.dll2001.12.4720.4097111,10411-Jun-200723:15x86SP2WOW
Wxolehlp.dll2001.12.4720.409710,75211-Jun-200723:15x86SP2WOW

Technical information

The XA specification contains guidelines about the support for loosely coupled XA branches and tightly coupled XA branches. The isolation boundary for loosely coupled XA branches is based on the XID. The isolation boundary for tightly coupled XA branches is based on the GTRID. For more information about tightly coupled XA branches and loosely coupled XA branches, see the XA specification.

MS DTC provides an XA switch that implements the APIs that are defined in the X/Open Distributed Transaction Processing XA specification. This XA switch can be used by any XA transaction manager to communicate with a non-XA resource, such as SQL Server, through MS DTC. The current version of MS DTC only provides support for loosely coupled XA branches. For example, MS DTC has a one-to-one mapping between an XID and an MS DTC transaction ID. The work that is performed by loosely coupled XA branches is isolated from one another.

The XA specification contains guidelines about the support for tightly coupled XA branches. Multiple XA branches that have the different XIDs and the same GTRID can see one another's changes in the resource manager. This hotfix enables the support for tightly coupled XA branches where multiple XA branches with same GTRID are mapped to a single MS DTC transaction ID. This support enables multiple tightly coupled XA branches to see one another's changes in the resource manager, such as SQL Server.

By default, after you apply this hotfix, the xa_open API is used for loosely coupled XA branches. If you want to call the xa_open API for tightly coupled XA branches, you must add the following setting to the xa_info parameter when you call the xa_open API.
BrIso=Tight
For example, use the following code to call the xa_open API for tightly coupled XA branches.
char* pszXaOpenStr="TM=computerName, RmRecoveryGuid=b3a7647d-8ade-4816-9872-217f01b92071, BrIso=Tight�;

xa_open(pszXaOpenStr, rmid, flags);
This hotfix enables both loosely coupled XA branches and tightly coupled XA branches to be present at the same time based on the xa_info parameter string. If XA branches have the same GTRID, one XA branch can be loosely coupled from a set of tightly coupled XA branches.

Additional registry entry

This hotfix provides a new registry key to change how xa_prepare messages are handled. You can add a new registry entry that is called WaitForAllXABranchPrepares to the
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
registry subkey. This registry entry is of DWORD type. If this registry entry is created and the value is set to 1, MS DTC will wait for all prepare messages.

This registry entry should be enabled or disabled by the application or the user. The XA specification specifies the following:

For tightly coupled XA branches, the resource manager may receive additional work for the same transaction from other branches after prepare messages are sent on one branch.

To enable this scenario, the value of the WaitForAllXABranchPrepares registry entry must be set to 1. After you set the value of the WaitForAllXABranchPrepares registry entry to 1, MS DTC will wait for all tightly coupled XA branches to send prepare messages. Then, MS DTC will delegate the prepare messages to the enlisted resource, such as SQL Server. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates

↑ Back to the top


Keywords: kbautohotfix, kbHotfixServer, kbfix, kbexpertiseadvanced, kbqfe, KB938653

↑ Back to the top

Article Info
Article ID : 938653
Revision : 3
Created on : 10/8/2011
Published on : 10/8/2011
Exists online : False
Views : 385