2016-07-14 157 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

相關問題