I had to move a ColdFusion application off of an old Windows BlueDragon server onto a new Windows 2012 ColdFusion (version 10) server. The ColdFusion application has to connect to an Oracle database. I ran into so many problems with this activity and had to do so much research that I felt it necessary to document my steps so as to prevent the crazy stress I endured from ever being experienced by anyone else. So if you find yourself with a similar task as listed above and you are spiraling downward then take a step back, read the notes below and I hope they may help you as well. Enjoy:)
I attempted to perform the following tasks on the new Windows 2012 ColdFusion (version 10) server and was initially unsuccessful:
- Move ColdFusion application over to new Windows 2012 ColdFusion (version 10) server.
- Set up an Oracle ODBC Instant Client 32 bit System DSN through Microsoft ODBC Data Source Administrator.
- Set up an identical Oracle ODBC Instant Client 64 bit System DSN through Microsoft ODBC Data Source Administrator.
- Set up an ODBC Socket Data Source through ColdFusion 10 Administrator where it would reference one of the ODBC DSN discussed in items 2 and 3 listed above.
- Successfully run my ColdFusion application that connects to an Oracle database based on the connections discussed in items 2, 3 and 4 listed above.
These were the primary errors I encountered at various stages when attempting to make the tasks listed above happen:
- error in Microsoft ODBC Administrator : ORA-03134: Connections to this server version are no longer supported.
- error in Microsoft ODBC Administrator : The setup routines for the Oracle in instantclient10_2 ODBC driver could not be found. Please reinstall the driver.
- error in Microsoft ODBC Administrator : ODBC driver could not be loaded due to system error code 126: the specified module could not be found sqoras32.dll.
- error in ColdFusion Administrator: architecture mismatch between driver and application
- error in ColdFusion Administrator: Timed out trying to establish connection
After about 2 billion installs, reboots, uninstalls, and registry edits, all was a success. These are the steps that finally got everything working beautifully; I hope they help you as well:
- If you have already installed a ton of Oracle ODBC, JDBC Instant Client versions and none of them work, then first get rid of it all by doing uninstalls and cleanup – something like this:
Uninstall all oracle drivers (as an administrator, run odbc_uninstall from each directory in which the drivers were installed)
In the Registry Editor (back it up first), delete the data source keys you created under ODBC.INI and the entry under ODBC.INI\ODBC Data Sources linking your data sources to the drivers, you would be looking in places like this:
System User: HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
32-bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI
64-bit: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
- Reboot the server
- Create this folder: C:\Oracle
- Create this folder: C:\junk4me
- Create this subfolder: C:\Oracle\32bit10_2_04
- Create this subfolder: C:\Oracle\64bit10_2_05
- Download these zip files from Oracle and place them here:
C:\junk4me\instantclient-basic-win32-10.2.0.4.zip
C:\junk4me\instantclient-odbc-win32-10.2.0.4.zip
C:\junk4me\instantclient-basic-win64-10.2.0.5.zip
C:\junk4me\instantclient-odbc-win64-10.2.0.5.zip
- Unzip these 4 files to these locations:
C:\junk4me\instantclient-basic-win32-10.2.0.4\
C:\junk4me\instantclient-odbc-win32-10.2.0.4\
C:\junk4me\instantclient-basic-win64-10.2.0.5\
C:\junk4me\instantclient-odbc-win64-10.2.0.5\
- Copy the files inside this location: C:\junk4me\instantclient-basic-win32-10.2.0.4\ over to this location: C:\Oracle\32bit10_2_04\
Copy the files inside this location: C:\junk4me\instantclient-odbc-win32-10.2.0.4\ over to this location as well (yes, they all go in the same place): C:\Oracle\32bit10_2_04\
Copy the files inside this location: C:\junk4me\instantclient-basic-win64-10.2.0.5\ over to this location: C:\Oracle\64bit10_2_05\
Copy the files inside this location: C:\junk4me\instantclient-odbc-win64-10.2.0.5\ over to this location as well (yes, they all go in the same place): C:\Oracle\64bit10_2_05\
- Add sqlnet.ora and tnsnames.ora to this location (and put in any special settings for you if you have any): C:\Oracle\32bit10_2_04
- Add sqlnet.ora and tnsnames.ora to this location (and put in any special settings for you if you have any): C:\Oracle\64bit10_2_05
- Add these three files to this location: C:\Oracle\32bit10_2_04 (they are located elsewhere on your machine, if you can’t find them get them from reputable sources on the internet): mfc71.dll, msvcr71.dll, msvcrt.dll
- Add these three files to this location: C:\Oracle\64bit10_2_05 (they are located elsewhere on your machine, if you can’t find them get them from reputable sources on the internet): mfc71.dll, msvcr71.dll, msvcrt.dll
- Edit the system environment variables to the following:
add this to PATH: C:\Oracle; C:\Oracle\32bit10_2_04;
add this to TNS_ADMIN: C:\Oracle\32bit10_2_04
- Run a command prompt window as Administrator, cd over to this directory: C:\Oracle\32bit10_2_04 and then run this command: odbc_install
- Reboot the server
- Open this Microsoft ODBC Data Source Administrator (32 bit): C:\Windows\SysWOW64\ odbcad32.exe > Select System DSN > select Add > select Oracle in instantclient10_2 > enter your connection information > select Test Connection > enter Password > Connect. You should have success. Close these windows. Remember what name you gave this new system DSN, the 64 bit version will have an identical name.
- Run a command prompt window as Administrator, cd over to this directory: C:\Oracle\64bit10_2_05 and then run this command: odbc_install
- Reboot the server
- Open this Microsoft ODBC Data Source Administrator (64 bit): C:\Windows\System32\ odbcad32.exe > Select System DSN > select Add > select Oracle in instantclient10_2 > enter your connection information (GIVE IT THE SAME NAME AS YOUR 32 BIT System DSN THAT YOU JUST CREATED) > select Test Connection > enter Password > Connect. You should have success.
- Open the Registry Editor, go to these locations: 64 bit location: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI (select the one you created) and 32 bit location: HKEY_LOCAL_MACHINE\Wow6432Node\SOFTWARE\ODBC\ODBC.INI (select the one you created), in these two locations you are going to enter the username and password of your connection in the key values for logonid and password. While you are in here, make sure that the “Driver” value is the EXACT match to where the file it mentions is actually stored on your machine.
- Reboot the server
- Login to the ColdFusion Administrator > select Data & Services > select Data Sources
- your Data Source Name – just name it the same name your gave your 32 bit and 64 bit System DSN’s that you created, for the Driver – select ODBC Socket > select Add
- Enter your connection information (for ODBC DSN, select the 32 bit driver you created from the dropdown menu – I think the 64 bit is actually being used but for some reason this dropdown is only looking at the 32 bit list) > select Submit. This should submit successfully.
- Reboot the server
- Test your ColdFusion application that relies on this database connection.
- If all is well, delete this folder: C:\junk4me
Throw a 28 day party.