Skip to main content
Participant
August 6, 2010
Question

64-bit ColdFusion 9 ODBC drivers confusion? (architecture mismatch)

  • August 6, 2010
  • 7 replies
  • 49049 views

Hi all - I'm having problems setting up ColdFusion ODBC sources in a pure 64-bit environment. Server specs:

  • Windows 2008 R2 (64-bit)
  • ColdFusion 9.01 (251028) Enterprise, 64-bit

I have 64-bit ODBC drivers for all of my database sources:

  • 64-bit SQL Server (bundled with Windows 2008 R2)
  • 64-bit MS Access 2010 (with 64-bit Access ODBC driver from Office 2010 64-bit install)
  • 64-bit ODBC drivers for Sybase SQL Anywhere 11 (from SyBase)

Using the (64-bit) ODBC Administrator, I can create system DSNs and they test out perfectly. (From my test Access database, I can use these DSNs to pull data from SQL Server and from SQL Anywhere.) Since this is working, I'm pretty confident that my drivers are all 64-bit and that everything is happy.

Now for ColdFusion...

When I try to create a new data source in the ColdFusion Administrator and I use, the "ODBC Socket" option, I am presented with a drop-down list of my 64-bit ODBC system DSNs (good!), but whenever I select one and save, I invariably get an "architecture mismatch" error like below:

Connection verification failed for data source: MSSQLtestDatabase
java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC  Socket]internal error: The specified DSN contains an architecture mismatch  between the Driver and Application
The root cause was that:  java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal  error: The specified DSN contains an architecture mismatch between the Driver  and Application

I am well aware that "architecture mismatch" errors mean that you're trying to mix 32-bit drivers with a 64-bit application (or vice-versa), but I'm pretty sure that everything in my environment is 64-bit.

As a further test, I created a few 32-bit ODBC system DSNs and the ColdFusion Administrator does not present them as options in the drop-down list of ODBC DSNs (good!). So, it seems like the Administrator is smart enough to show only the 64-bit DSNs, but whenever you try to connect to one, it gets confused and kicks up an "architecture mismatch" error.

So is there any obvious configuration error here? Is there a 32-bit subcomponent to ColdFusion (JDBC, etc.) that's confusing things? (I ran the ColdFusion_9_WWE_win64.exe setup downloaded from Adobe's site.) Is 64-bit ColdFusion ready for prime time? Any suggestions would be greatly appreciated. Thanks, Joe

This topic has been closed for replies.

7 replies

Participant
February 7, 2012

HI,

I was looking for a JDBC driver for one of my project but find out the right one in each once there were some problems while connecting to  my database then i got one JDBC driver here http://www.datadirect.com/products/jdbc/index.html and it worked for me.You can also go there and download for free trial.Just try it.

You can go for more drivers her for downloads ODBC driver

JDBC driver download

ODBC driver download

Inspiring
June 7, 2011

Well, perform the following seem to work for me.

For Microsoft Access DB.

1. Load %windir%\sysWOW64\odbcad32.exe

2. Create a new Microsoft Access Datasource and give it a name (you'll need it name later).

3. Go to CF Admin ->Datasource page.

4. Create a new Microsoft Access Datasource (using the datasource name from step 2).

5. Save changes and ignore the error message.

6. Verify connection and you should not see that stupid architecture mismatch error message.

7. Notice CF will still create a datasource in the 64 bits odbcad32.exe

Participant
September 1, 2010

From Adobe support:

"Engineering has let us know that ODBC service does not support 64 bit drivers and that’s the reason your CF ODBC datasources are not working with 64 bit Oracle drivers. "

They recommend JDBC.

Charlie Arehart
Community Expert
Community Expert
September 3, 2010

Sure, JDBC is an option, and I had pointed out the HXTT driver in my earlier note.

But I also pointed out there that people have solved this problem simply by also implementing a 32-bit datasource. I offered several links explaining that.

Did you try it? It's worked for many.

For those who missed it, it's here: http://forums.adobe.com/message/3101486#3046213

/charlie

/Charlie (troubleshooter, carehart. org)
Known Participant
November 3, 2010

@Charlie - I know this topic is now a couple of months old, but with the research you did, and maybe experienced:

I am thinking of putting  together a server with:

Windows Web - (there should be a 64-bit flavor of this)

CF 9 Enterprise (64 bit)

MS SQL  - (I imagine there should be a 64 bit version)

Do you see any issues with this config?

I don't plan to use any MS Access programs, so there is no concern there.

Thanks for your help.

Doug

Participant
August 26, 2010


@ teedoffnewbie : We gave up on transferring our Access backend apps too (thankfully only a few of these left). We are putting them on a "legacy" 2003 server until we can recode them over to SQL.

@ charlie arehart : Have you heard anything specific to Oracle and this 32 bit / 64 bit issue?

I have a support ticket in with Adobe on this (Oracle specifically), but haven't heard anything yet.

Charlie Arehart
Community Expert
Community Expert
August 27, 2010

Nope, no knowledge of any Oracle details on this. Sorry.

/charlie

/Charlie (troubleshooter, carehart. org)
August 26, 2010

I gave up a year ago trying to get CF9 64bit to work with my Access db..lol Not sure why CF stopped supporting Access drivers for their 64bit versions(I had CF8 64bit and it worked fine) but I finally just reinstalled CF9 32bit. Of course now I am using MySQL and the default driver in CF9, so I guess it wouldnt matter now.

Participant
August 9, 2010

This is interesting and timely.  I'm having the exact same issue, but with Oracle 11g drivers.  We are setting up a new web server:

Windows 2008 R2 (64-bit)

ColdFusion 9,0,0,251028 

We installed CF9 on a Windows 20080 server, IIS 7.5.  Our DBA installed the Oracle 11g drivers, but we forgot to specify 64 bit.  He first installed 32 bit drivers, which we could not see in the CF administrator (to be expected).  We requested a reinstall of the 64 bit drivers.  We could then see the DSN in the ODBC DSN dropdown.

However, when we select it and create a datasource, we get the following error:

Connection verification failed for data source: XXXXXXX
java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error: The specified DSN contains an architecture mismatch between the Driver and Application
The root cause was that: java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error: The specified DSN contains an architecture mismatch between the Driver and Application

During troubleshooting, our DBA reinstalled the 64 bit drivers.  He also contacted Oracle support and verified he was installing them correctly.

I have the same question as "joseib". The error hints at a 32/64 bit mismatch, but it seems this shouldn't be the case here?

josiebAuthor
Participant
August 10, 2010

@CHI-Hospital: Yes, it appears we are in the same boat. My server is a "virgin" Windows 2008 R2 box with 64-bit ColdFusion 9.01. This is NOT an upgrade from a previous version of ColdFusion; I didn't preinstall any 32-bit Java engines or any other applications before installing IIS and ColdFusion. So right out of the box, I'm getting this "architecture mismatch" problem. It's as if the 64-bit ColdFusion installer was incorrectly bundled with some 32-bit component (like JDBC or JRUN, etc.)

@charlie_arehart: Your point is well taken about using JDBC drivers and that is definitely a possibility for some of our data sources, but this server that I'm working on is a test to see what works and what doesn't. Having the option of using ODBC drivers is important to my department and quite frankly, this stuff should world. ODBC is an old reliable standard that's been around for almost two decades.

Now when I create a test data source using the supposedly native Microsoft Access driver in the ColdFusion Administrator, isn't that really just an alias for creating an ODBC System DSN? After creating a "Microsoft Access" data source, I get an "unable to update the NT registry. Variable DRIVERPATH is undefined" error and when I verify the data source, I get the same old "The specified DSN contains an architecture mismatch between the Driver and Application" error. Checking the ODBC Administrator, I see that ColdFusion has created a System DSN by that name, but with the 32-bit Access ODBC driver, so again, I get an "architecture mismatch" error and the data source is unusable.

So as it stands now, this 64-bit server is pretty useless to me and can't connect to anything. (We're running 32-bit ColdFusion 9 on a different Windows 2003 32-bit and all is happy.) -Joe

August 6, 2010

josieb wrote:

Is there a 32-bit subcomponent to ColdFusion (JDBC, etc.) that's confusing things?

There just might be.  As far as I recall, these 64 bit drivers, particualarly the 64 bit Access driver, did not exist when ColdFusion 64 bit came out.  You may be using a piece of ColdFusion that the Adobe engineers had nothing to test against when they where building the thing.

But only Adobe could answer that for you.  You might tryin posting this to someplace where they hand out.  I know Sarge is a regular member of the House of Fusion list.  http://www.houseoffusion.com/groups/cf-talk/

Charlie Arehart
Community Expert
Community Expert
August 6, 2010

Well, before offering another thought on things, a key question needs to be asked:

Why are you using ODBC at all? You're on CF Enterprise. There are native drivers for SQL Server and Sybase, and a dedicated driver for Access.

I do realize that some people started using them back in the day (CF 3, 4, or 5) and maybe never bothered to stop using them when JDBC drivers came out with CF 6. Or perhaps you recently jumped from 5 or earlier to 9. So the first thought is: don't use ODBC if you don't have to. Is there anything, given that, which would still compel you to press on? (If so, I have more thoughts for you below.)

But let me digress for a moment and say, for the benefit of someone else reading this someday, who may be on CF Standard: even in CF standard, there are at least dedicated (non ODBC) drivers for SQL Server and Access. As for Sybase, you could perhaps still want to try to connect to it using ODBC, but I'll note that one could get a free JDBC driver for Sybase (such as at http://jtds.sourceforge.net/) and use the "Other" driver type when setting up the datasource in CF.

Back to your problem at hand, if for some reason you want to press on, besides what Ian offers, I'll ask this: did you by any chance have CF 8 (32 bit) installed on the box before upgrading to CF 9 64 bit? It's just a guess, but I could see that if the ODBC services remained from the old install, it could cause confusion.

/charlie

/Charlie (troubleshooter, carehart. org)