• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

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

New Here ,
Aug 06, 2010 Aug 06, 2010

Copy link to clipboard

Copied

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

TOPICS
Database access

Views

47.7K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 06, 2010 Aug 06, 2010

Copy link to clipboard

Copied

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/

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 06, 2010 Aug 06, 2010

Copy link to clipboard

Copied

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)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 09, 2010 Aug 09, 2010

Copy link to clipboard

Copied

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?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 10, 2010 Aug 10, 2010

Copy link to clipboard

Copied

@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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 10, 2010 Aug 10, 2010

Copy link to clipboard

Copied

As extra info (might be useful), when I look at all processes under the Windows Task Manager, I see thatjrun.exe and jrunsvc.exe are 64-bit, but swagent.exe*32, swsoc.exe*32, and swstrtr.exe*32 (the DataDirect SequelLink services) are all 32-bit executables. (The Verity services are also 32-bit.) So if I have a 64-bit web server service (ColdFusion) that gets installed with a 32-bit database connectivity engine, yet tries to enforce using only 64-bit data sources, isn't this an inherent problem or bug in what the Adobe installer put on this machine?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 11, 2010 Aug 11, 2010

Copy link to clipboard

Copied

OK, just did a little Googling for you about this, Josie (and others). There seem to be a few alternative solutions, each with pros and cons.

The easiest, though, may be to simply use the 32-bit (instead of default 64bit) ODBC control panel, and then again use the MS Access driver in the CF Admin (not the ODBC socket one) to point to that. This is discussed here:

http://www.cfexecute.com/post/access-dsns-in-64bit-coldfusion

There's also a little more that may help at the bottom of this:

http://www.zidsoft.com/x64.html

MS also covers the topic here:

http://msdn.microsoft.com/en-us/library/ms712362%28VS.85%29.aspx

Other CF-specific solutions include:

- run CF instead in 32-bit mode (even on the 64-bit machine). See discussion at http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:60467

- if you have 2 boxes available, you could run CF in 32-bit mode on one box (just for providing access to the 32-bit Access driver), then "proxy" the DSN setup from the 64-bit CF machine to access the DSN on the 32-bit machine (See http://www.coldfusionmuse.com/index.cfm/2009/4/7/MS.Access.Proxy)

- get an alternative jdbc driver for Access (HXTT), mentioned in the threads above

- did you happen to try the "microsoft access with Unicode" driver option in the CFAdmin? That is quite different from the one that is not "with Unicode", so worth a try if nothing else works for you.

Let us know if any of these suit you.

Also, I appreciate the annoyance of those who would think this should "just work" without workarounds. I think I have clarification there.

First, the CF9 System Requirements page is unclear on this. While its systems support matrix lists 32 and 64 but windows (among others), those don't list what DBs are supported on each. Instead, there's a database support matrix at the bottom, which does indicate that Access is supported, but it doesn't break it down per OS, let alone bit-level of each OS.

But I just found a clarificaiton in a devnet article (by an Adobe engineer) that does seem to put the nail in the coffin:

"Most of the functionality and features of ColdFusion run just fine on 64-bit platforms, however, certain features like ColdFusion COM interoperability, ColdFusion Delphi interoperability, and Microsoft Access database connectivity do not work on a ColdFusion 64-bit platform. A few other features, such as ColdFusion .NET integration services and database drivers currently run in 32-bit mode." (http://www.adobe.com/devnet/coldfusion/articles/64_bit_print.html)

I think most haven't noticed this or made much of it simply because Access has been eschewed by so many for so long.

/charlie

Providing CF troubleshooting services at carehart.org/consulting

charlie@carehart.org


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 26, 2010 Aug 26, 2010

Copy link to clipboard

Copied

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.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 26, 2010 Aug 26, 2010

Copy link to clipboard

Copied


@ 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.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 27, 2010 Aug 27, 2010

Copy link to clipboard

Copied

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

/charlie


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 01, 2010 Sep 01, 2010

Copy link to clipboard

Copied

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.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 02, 2010 Sep 02, 2010

Copy link to clipboard

Copied

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)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 03, 2010 Nov 03, 2010

Copy link to clipboard

Copied

@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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 03, 2010 Nov 03, 2010

Copy link to clipboard

Copied

Well, would you still be trying to use ODBC then? If not, I'd wonder if you even need to use a new machine or setup.

As for "issues with this config", it kind of depends on what you're asking. For instance, if you're running SQL Server on the same box as CF, that's risky in that SQL Server could steal all the memory and cause CF to fail with "outofmemory: out of swap space" errors. You would want to configure SQL Server (in its enterprise manager, in the properties for the server) to lower the max memory (which is essentially "unlimited" by default), so that both servers could co-exist on a single box.

Does that help?

/charlie


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 03, 2010 Nov 03, 2010

Copy link to clipboard

Copied

Hi Charlie -

Thanks for the info.As for using ODBC, do the JDBC drivers offer better performance?

The reason that I am looking for a new machine & software is for backup of the primary machine which is currently being CoLoed.

My boss wants something in-house just as a backup, and only when needed.

Thanks for the tip on the SQL server stealing memory.

It looks like a more optimal solution might be to have 2 boxes running.

But if he doesn't go for that, then I will lower the memory requirements for SQL.

Thanks,


Doug

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 03, 2010 Nov 03, 2010

Copy link to clipboard

Copied

Well sure, the JDBC drivers should be better, yes. With ODBC (since CFMX 6), you're going through an ODBC-JDBC bridge, so if you can skip that, it will be better. It's really only there for backward compatibility for those who for some reason have no JDBC alternative they can use. And Adobe even included a JDBC driver for MS Access, so that one need not use ODBC even for that.

I'll note that this sort of stuff is discussed in the CF docs, in the "Admin and Config Manual". No offense intended in mentioning that. It's just that many never even notice that it exists.

/charlie


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 03, 2010 Nov 03, 2010

Copy link to clipboard

Copied

Charlie -

No offense taken.

I appreciate any and all info you provide.

I haven't looked over the detailed documentation in years.

It seems like the positions I am in, are more the "jump in and go" methodology. 😉

And my spare time I try not to look at the CF manuals unless I have to!

Thanks again!

Doug

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 03, 2010 Nov 03, 2010

Copy link to clipboard

Copied

Charlie -

I was just looking over the Data Sources screen and was curious, are the ones listed at the top of the drop down -

are those the JDBC drivers?

thanks

Doug

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 03, 2010 Nov 03, 2010

Copy link to clipboard

Copied

They're all JDBC drivers. CF can only use JDBC drivers. Most are "pure" Type 4 JDBC drivers, which means that they only include Java code. Others are "impure" - they include something else: ODBC or some other native code. Generally, Type 4 JDBC drivers will provide better performance, as they involve fewer levels of indirection. The only drivers that aren't Type 4 JDBC drivers are the two Access drivers and the "ODBC Socket" driver, if I recall correctly.

Dave Watts, CTO, Fig Leaf Software

http://www.figleaf.com/

http://training.figleaf.com/

Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on

GSA Schedule, and provides the highest caliber vendor-authorized

instruction at our training centers, online, or onsite.

Read this before you post:

http://forums.adobe.com/thread/607238

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Nov 03, 2010 Nov 03, 2010

Copy link to clipboard

Copied

(As it is not the easiest thing to find .. ) there is a nice breakdown of the driver types here

http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf3639b1-7ffd.html

-Leigh

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 05, 2010 Nov 05, 2010

Copy link to clipboard

Copied

Well, that's a page within the Admin and Config manual that I pointed to earlier in the thread. But sure, it's not a bad idea to point to the specific page. I'm just reasserting the value of that CF manual (and the others).

/charlie


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Nov 05, 2010 Nov 05, 2010

Copy link to clipboard

Copied

>> I'm just reasserting the value of that CF manual (and the others)

Absolutely. But having fallen into the "did not know it existed for years ..." category, I have since found that particular breakdown very useful. So I guess I figured a preview/affirmation of the jewels in the documentation you described could not hurt

-Leigh

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 05, 2010 Nov 05, 2010

Copy link to clipboard

Copied

Fair enough. Thanks.

/charlie


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jun 07, 2011 Jun 07, 2011

Copy link to clipboard

Copied

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 07, 2012 Feb 07, 2012

Copy link to clipboard

Copied

LATEST

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation