Coldfusion 9.0.1标准64位和Oracle 11g 64位ODBC连接导致"架构不匹配"

Jer*_*tle 5 oracle11g coldfusion-9

我有一个新建的64位Windows Server 2008 R2盒子,我已经安装了64位Coldfusion 9 Standard.我已升级并将其修改为最新版本的CF. 我还在盒子上安装了64位Oracle 11g(11.1.0.7.0)客户端.我在Windows中使用64位ODBC数据源管理器创建了一个系统DSN,可以成功测试数据源的连接.

所有这些安装都顺利进行,但是,当我在Coldfusion Administrator中添加数据源时,我收到错误:

数据源的连接验证失败:myDatabaseName

java.sql.SQLException:[Macromedia] [SequeLink JDBC Driver] [ODBC Socket]内部错误:指定的DSN包含驱动程序和应用程序之间的体系结构不匹配根本原因是:java.sql.SQLException:[Macromedia] [SequeLink JDBC驱动程序] [ODBC套接字]内部错误:指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

我很难理解这个架构不匹配的确切位置,因为该盒子完全是64位.我看到所有正在运行的进程,一些相关的CF进程在32位运行(Verity相关进程,SOLR和CFDotNetSVC).我不确定这些是否可能导致这个问题,但我无法解释这种不匹配是否来自其他方面.

有人有主意吗?

Jer*_*tle 7

使用Dan的建议我在这里从Oracle获取了一个JDBC驱动程序:

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-111060-084321.html

然后我移动了JAR(在我的情况下为ojdbc6.jar)并将其添加到我的Coldfusion类路径中.

确定将数据源用于Coldfusion的正确设置稍微困难一些,但以下是我最终使用的设置:

JDBC URL: jdbc:oracle:thin:@//dbsrv.mydomain.com:1521/myDB.world
Driver Class: oracle.jdbc.driver.OracleDriver
Driver Name: Oracle Thin Driver
Run Code Online (Sandbox Code Playgroud)

然后是DB的用户名和密码.

果然它就像一个魅力.

丹,我想给你一个复选标记,因为你肯定让我朝着正确的方向,但我只能标记一个正确的方向.


Dan*_*ort 4

我相信您需要要么降级到 32 位驱动程序,要么使用本机 JDBC 驱动程序才能成功连接到 Oracle。我的建议是采用 JDBC 路线,并使用“数据源”屏幕上的“其他”选项直接通过本机 Oracle JDBC 驱动程序进行连接。这样您将获得更好的性能,并通过 ColdFusion 更好地控制连接。

连接到ColdFusion Livedocs 中的 Oracle 信息。

  • 丹,谢谢你的回复。不幸的是,我们仅获得 CF 标准的许可,其中不包括 Oracle JDBC 驱动程序。 (2认同)
  • 如果您可以获得任何类型的 JDBC 驱动程序,那么您就可以自行安装并使用它。您可以使用 ColdFusion 的 JRE 中安装的任何 JDBC 驱动程序。 (2认同)