PC Review


Reply
Thread Tools Rate Thread

'Failed to enlist on calling object's transaction' error on Win64

 
 
rajendrak
Guest
Posts: n/a
 
      21st May 2009
Problem Summary:
'Failed to enlist on calling object's transaction' error for an MSDTC
application on 64-bit Windows and 32-bit ODBC driver dll.

System Details:
64-bit Windows OS (Windows XP or Windows Vista)
Running a 32-bit database test application with 32-bit ODBC drivers
involving 'Transactions'.
The problem is NOT observed if the same test application is run as x64 with
64-bit ODBC drivers.

Problem Description:
1) I have a 'custom ODBC driver' that I am testing with a test application.
The test application connects using the ODBC DSN. The connection to the DB
happens as part of a 'Transaction'

2) The connection.Open() operation fails with the below exception:
Update: ERROR [25000] [Microsoft][ODBC Driver Manager] Failed to enlist on
calling object's transaction
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr
failed
Error: (0): [Microsoft][ODBC Driver Manager] Failed to enlist on calling
object's transaction
Error: (0): [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed

3) This happens only while using the ODBC 32-bit drivers. It works perfectly
fine with the 64-bit ODBC drivers. Even with ODBC 32-bit if the connection is
NOT part of a 'Transaction', it works perfectly fine.

4) I have verified for the presence of the registry key for the ODBC DLL
under HKLM/Software/Microsoft/MSDTC/XADLL.

5) Most suggestions provided in other forums do not work for me.

Questions:
1) It is observed that MSDTC.exe accesses all registry keys from under
HKLM/Software/Microsoft and not from under Wow6432Node.

2) Does MSDTC on 64-bit Windows, support 32-bit ODBC drivers/applications?

3) I am manually creating the registry entries under XADLL. I have also
verified that it gets accessed by MSDTC.exe (verified using procmon). Are
there any other registry entries that are needed to fix this problem?

4) In the ODBC driver code I noticed, IDtcXaHelperFactory::Create returns
E_FAIL (The attempt to create the XA Helper object failed due to a bad
installation of the DTC.)

Thanks!

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
'Failed to enlist on calling object's transaction' error on Win64 rajendrak Microsoft Dot NET 0 21st May 2009 05:29 AM
Catching "set" operations for exposed reference types (enlist for processing in transaction) Anders Borum Microsoft C# .NET 2 7th Feb 2006 11:52 PM
Transaction cannot enlist in the specified transacion coordinator =?Utf-8?B?QmVubnk=?= Microsoft ADO .NET 0 7th Dec 2005 12:16 PM
"Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction." Ollie Riches Microsoft C# .NET 3 11th Mar 2005 06:23 PM
"Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction." Ollie Riches Microsoft ADO .NET 3 11th Mar 2005 06:23 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 12:08 AM.