FIX: Locking Problem When Using XA Transactions (181776)
The information in this article applies to:
- Microsoft Transaction Server 2.0
This article was previously published under Q181776 SYMPTOMS
Microsoft Transaction Server causes database blocking problems when
transactions are used against XA-compliant databases, including Oracle and
DB/2. If two or more Microsoft Transaction Server components that
share a transaction open connections to the same database and try to access
the same database records or index sets, they collide on locks.
CAUSE
This problem occurs because of the way that Msdtcprx.dll generates the XA
Transaction ID (XID). The XID has two parts: a Global Transaction ID
(GTRID) and a Branch Qualifier (BQUAL). The XIDs contain three GUIDs. For
Microsoft Transaction Server version 2.0, all three GUIDs are located in
the GTRID and the BQUAL is empty. However. the first GUID should be in the
GTRID and the other two GUIDS in the BQUAL. Therefore, to XA, each
connection looks like it is working on a different transaction. By
generating the XA XID in the new way, all of the connections work on the
same transaction.
STATUS
Microsoft has confirmed this to be a problem in Microsoft Transaction
Server version 2.0. This problem has been fixed in Microsoft Windows NT 4.0 Service Pack 4 (SP4).
Modification Type: | Minor | Last Reviewed: | 9/23/2005 |
---|
Keywords: | kbHotfixServer kbQFE kbBug kbDatabase kbfix KB181776 |
---|
|