Adding ODBC connections in Windows Server 2003 64-bit
We’ve been deploying a BizTalk 2006 solution to a x64 system and, while BizTalk 2006 itself has no problems, I’ve had a lot of problems related to the BizTalk Adapters for Host Systems and the BizTalk Adapters for Enterprise Applications. I plan to write a number of posts in the near future discussing these problems (once we have them all resolved). In the meantime, I wanted to share this little tidbit I’ve learned about ODBC on 64-bit windows.
It’s important for you to know if your application is going to run as a 32-bit or 64-bit application. There are two different repositories for ODBC connections, based on the drivers you’ve installed and the client that will run them. 32-bit applications will only see ODBC connections from the 32-bit side, and 64-bit applications will only see ODBC connections from the 64-bit side.
32-bit applications register ODBC connections to the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI
64-bit applications register ODBC connections to the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
Adding these keys is initially tricky, but if you understand the above then it should make sense. Typically, you go to Start –> Administrative Tools –> Data Sources (ODBC) to create your ODBC connections. And this is fine if you want to create 64-bit ODBC connections. Any ODBC connection created using the Data Sources (ODBC) link will get created in the HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI key. This is because it calls the program %WINDIR%\System32\odbcad32.exe. However, this program will not create 32-bit ODBC connections.
To create 32-bit ODBC connections, you have to run %WINDIR%\SysWOW64\odbcad32.exe. Adding an ODBC connection through this application will create the ODBC connection in the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI key, and allow your 32-bit applications to see and use the ODBC connection.
I’m still getting used to the concept of WOW and how it runs 32-bit applications on an x64 system. This information may not be news to some of you, but it presented a challenge to me.
I hope this helps!
Wade Wegner works for Microsoft and is the Technical Evangelist for Windows Azure AppFabric.
Thanks for the post ,it helped me a lot.We are having 64 bit server running biztalk server 2006 on it.
Saravana
Hello Wade
I couldnt get connected with OracleDB .Iam getting the following error when i try to connect.I have installed oracle client for windows 2003,is there a separate software for 64 bit machines.Your blog was very usefull in solving most of the issues with biztalk adapter for oracle.
Thanks
Saravana Ramkumar
Event Type: Error
Event Source: Microsoft BizTalk Adapters for Enterprise Applications
Event Category: None
Event ID: 0
Date: 6/15/2007
Time: 3:23:49 PM
User: N/A
Computer: PSDBIZ01
Description:
Exception occurred:
IM002 : [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Hi Saravana,
Have you taken a look at the following post?
The BizTalk Adapters for Enterprise Applications on Windows Server 2003 64-bit
In this post I detail the exact steps you must take in order to get the Oracle adapter to work on 64-bit Windows — there are a LOT of registry hacks that you need to make, in addition to permission settings in the file system.
I hope this helps. If not, feel free to either e-mail me directly or post another comment.
Best of luck,
Wade
Hi Wade,
Interesting article. I didnt know about the 32 bit ODBC adminstrator.
However I have a slightly different problem. I have installed the oracle 9i client onto a windows server 2003 R2 64 bit server. When I go into ODBC administrator I click "Add" but in here i only see SQL Server as a selection – no oracle! However if I create a .udl file on the desktop I can see Microsoft OleDB for Oracle as a provider. Whats going wrong here? Any help you can offer would be fantastic.
Regards,
Dom
Thank you so much! This one had me stumped.
Thank you very much for this information. It resolved our issue and saved the day!