coldfusion v 10 std无法通过jdbc oci driver

时间:2016-07-14 13:32:58

标签: oracle jdbc coldfusion driver oci

我正在尝试在coldfusion v 10 std服务器上建立与oracle数据库的jdbc-oci连接。

使用jdbc oci的原因是需要加密在app服务器和数据库之间流动的数据(通过使用sqlnet.ora中的常用设置)。但是,无论我们尝试什么语法,都不是服务 基于tnsnames的jdbc url也不会起作用。在保存(并自动测试)连接之后,立即使用“java.sql.SQLException:尝试建立连接超时”来解决coldfusion错误。

由于错误将始终立即抛出,因此可能发生了超时,这看起来很奇怪。因此,我认为还有另一个未能建立连接的根本原因。

有任何想法吗?

请注意,除了coldfusion之外,我们使用控制台应用程序模拟了连接建立,但成功使用了相同的jvm和jdbc驱动程序。因此它似乎不是一个jvm或驱动程序或oci.dll 相关问题。

  • 数据源设置:

    • 驱动程序类:oracle.jdbc.driver.OracleDriver
    • JDBC URL(使用tnsnames.ora):jdbc:oracle:oci:@<theName>
    • JDBC URL(使用ip,端口,服务):jdbc:oracle:oci:@//<IP>:1521/<SID>
  • 错误消息:

    • 数据源的连接验证失败:名称
      java.sql.SQLException:尝试建立连接超时 根本原因是:java.sql.SQLException:尝试建立连接超时
  • 环境:

    • ojdbc6驱动程序位于coldfusion已知的目录中
    • oci.dll存在于系统路径变量已知的目录中,由coldin服务上的sysinternals processexplorer验证
    • 对于JDBC URL(使用tnsnames.ora),包含tnsnames.ora的目录称为系统变量TNS_ADMIN,由coldin服务上的sysinternals processexplorer验证
    • 与tnsnames.ora一起有一个sqlnet.ora文件,其中包含用于打开数据加密的设置

Stacktrace:

从“datasource-name here”请求连接时发生非SQL错误。 尝试建立连接超时

Exception in thread "Thread-2120" java.lang.UnsatisfiedLinkError: no ocijdbc11 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
    at java.lang.Runtime.loadLibrary0(Runtime.java:845)
    at java.lang.System.loadLibrary(System.java:1084)
    at oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3560)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3556)
    at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:269)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
    at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:165)
    at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:53)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
    at coldfusion.server.j2ee.sql.pool.JDBCPool.createPhysicalConnection(JDBCPool.java:614)
    at coldfusion.server.j2ee.sql.pool.ConnectionRunner$RunnableConnection.run(ConnectionRunner.java:67)
    at java.lang.Thread.run(Thread.java:722)
A non-SQL error occurred while requesting a connection from "datasource-name here".
Timed out trying to establish connection
[Fatal Error] :2662:4: The element type "view" must be terminated by the matching end-tag "</view>".

1 个答案:

答案 0 :(得分:0)

在配置文件cf-directory \ cfusion \ bin \ jvm.config中添加路径到oracle即时客户端已解决了这个问题。