Article: Q231886
Product(s): Microsoft Windows NT
Version(s): 1.0,1.5
Operating System(s):
Keyword(s): kbCOMPlus kbDTC kbOSWin2000bug kbGrpDSCom kbDSupport
Last Modified: 20-FEB-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft COM+, versions 1.0, 1.5
- the operating system: Microsoft Windows 2000
- the operating system: Microsoft Windows XP
-------------------------------------------------------------------------------
SYMPTOMS
========
When you use Bring Your Own Transaction (BYOT), the import transaction may fail
with XACT_E_TIP_PULL_FAILED. The following message may be logged in event
viewer:
The BYOT Gateway failed to import the transaction using Transaction Internet
Protocol (TIP). Make sure that the installed DTC supports the TIP protocol.
Server Application ID : {A20B779B-03F6-11D3-926A-00C04F8EF295}
Server Application Name : server_name
Error Code = 0x8004d021 :
COM+ Services Internals Information :
File: .\byotex.cpp, Line: 105
CAUSE
=====
This error is misleading because import transaction can fail even if Microsoft
Distributed Coordinator (MS DTC) supports Transaction Internet Protocol (TIP).
This error is returned when a PULLED command is sent to the Transaction Manager
(TM), and the TM sends back a NOTPULLED token. Any TM that is TIP-compliant can
send a NOTPULLED token. A TM can return this token if for any reason the Pull
relationship is not established. For additional information, see the "More
Information" section to follow.
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article.
MORE INFORMATION
================
MS DTC returns a NOTPULLED token under the following circumstances:
- The Transaction identifier (TrID) that is included in the PULL command is not
valid. TIP specification does not define a format for TrID. Each TM defines
its own TrID. For MS DTC, the valid TrID should comply with the following
format:
oletx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
which is 43 characters long (including terminal NULL).
- The application was badly designed. The transaction was committed before the
complete transaction tree was set up.
- The specified TrID is not in the list for the active transactions. As a
result, the transaction is stopped or timed out.
Additional query words: error 0x8004d021
======================================================================
Keywords : kbCOMPlus kbDTC kbOSWin2000bug kbGrpDSCom kbDSupport
Technology : kbOSWin2000 kbAudDeveloper kbOSWinSearch kbOSWinXP kbCOMPlusSearch kbZNotKeyword3 kbCOMPlus100 kbOSWinXPSearch
Version : :1.0,1.5
Issue type : kbbug
Solution Type : kbpending
=============================================================================