2016-07-14 102 views
3

我正在尝试在coldfusion v 10 std服务器上建立一个到oracle数据库的jdbc-oci连接。coldfusion v 10 std无法通过jdbc oci驱动程序连接到oracle

使用jdbc oci的原因是加密应用程序服务器和数据库之间的数据流的必要性(通过使用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>
  • 错误消息:

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

    • ojdbc6司机生活在一个目录中已知的ColdFusion
    • oci.dll位于系统路径变量已知的目录中,由sysinternals processexplorer在ColdFusion服务
    • 上对JDBC URL(使用tnsnames.ora)进行验证,包含tnsnames.ora的目录被称为系统变量TNS_ADMIN通过Sysinternals的processexplorer上ColdFusion服务
    • 用的tnsnames.ora沿证实存在一种包括设置在数据加密切换sqlnet.ora文件

堆栈跟踪:

A中没有在从“datasource-name here”请求连接时发生n-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>". 
+0

你可以发布整个SQLException的堆栈跟踪吗? –

+0

请编辑你的文章和堆栈跟踪,不要使用评论。 –

回答

0

在配置文件的CF-目录\ cfusion \ BIN \ jvm.config添加路径到Oracle即时客户端已经解决了这个问题。

+0

发布一个添加到jvm.config(以及哪里)的路径的例子会对遇到这个问题的下一个人有所帮助:) – Leigh

相关问题