coldfusion v 10 std 无法通过 jdbc oci driver 连接到 oracle
coldfusion v 10 std unable to connect to oracle via jdbc oci driver
我正在尝试在 coldfusion v 10 std 服务器上建立与 oracle 数据库的 jdbc-oci 连接。
使用 jdbc oci 的原因是需要加密在应用程序服务器和数据库之间流动的数据(通过使用 sqlnet.ora 中的通用设置)。然而,无论我们尝试什么语法,服务都
基于或基于 tnsnames jdbc url 都可以。保存(并自动测试)连接后,coldfusion 立即出现 "java.sql.SQLException: Timed out trying to establish connection".
错误
看起来很奇怪可能发生了超时,因为错误总是会立即抛出。因此,我想还有另一个无法建立连接的根本原因。
有什么想法吗?
请注意,我们在 coldfusion 之外模拟了与控制台应用程序的连接建立,但使用相同的 jvm 和 jdbc driver 成功。因此它似乎不是 jvm 或 driver 或 oci.dll
相关问题。
数据源设置:
- Driver Class :
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 driver 位于 coldfusion 已知的目录中
- oci.dll 位于系统路径变量已知的目录中,由 coldfusion 服务上的 sysinternals processexplorer 验证
- 对于 JDBC URL(使用 tnsnames.ora),包含 tnsnames.ora 的目录被称为系统变量 TNS_ADMIN,由 sysinternals processexplorer 验证在 coldfusion 服务上
- 连同 tnsnames.ora 有一个 sqlnet.ora 文件,其中包含用于打开数据加密的设置
堆栈跟踪:
从 "datasource-name here" 请求连接时出现 non-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.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>".
在配置文件 cf-directory\cfusion\bin\jvm.config 中添加到 oracle 即时客户端的路径已解决问题。
我正在尝试在 coldfusion v 10 std 服务器上建立与 oracle 数据库的 jdbc-oci 连接。
使用 jdbc oci 的原因是需要加密在应用程序服务器和数据库之间流动的数据(通过使用 sqlnet.ora 中的通用设置)。然而,无论我们尝试什么语法,服务都 基于或基于 tnsnames jdbc url 都可以。保存(并自动测试)连接后,coldfusion 立即出现 "java.sql.SQLException: Timed out trying to establish connection".
错误看起来很奇怪可能发生了超时,因为错误总是会立即抛出。因此,我想还有另一个无法建立连接的根本原因。
有什么想法吗?
请注意,我们在 coldfusion 之外模拟了与控制台应用程序的连接建立,但使用相同的 jvm 和 jdbc driver 成功。因此它似乎不是 jvm 或 driver 或 oci.dll 相关问题。
数据源设置:
- Driver Class :
oracle.jdbc.driver.OracleDriver
- JDBC URL(使用 tnsnames.ora):
jdbc:oracle:oci:@<theName>
- JDBC URL(使用ip、端口、服务):
jdbc:oracle:oci:@//<IP>:1521/<SID>
- Driver Class :
错误信息:
- 数据源的连接验证失败:theName
java.sql.SQLException: 尝试建立连接超时
根本原因是:java.sql.SQLException:尝试建立连接超时
- 数据源的连接验证失败:theName
环境:
- ojdbc6 driver 位于 coldfusion 已知的目录中
- oci.dll 位于系统路径变量已知的目录中,由 coldfusion 服务上的 sysinternals processexplorer 验证
- 对于 JDBC URL(使用 tnsnames.ora),包含 tnsnames.ora 的目录被称为系统变量 TNS_ADMIN,由 sysinternals processexplorer 验证在 coldfusion 服务上
- 连同 tnsnames.ora 有一个 sqlnet.ora 文件,其中包含用于打开数据加密的设置
堆栈跟踪:
从 "datasource-name here" 请求连接时出现 non-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.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>".
在配置文件 cf-directory\cfusion\bin\jvm.config 中添加到 oracle 即时客户端的路径已解决问题。