首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >coldfusion v 10 std无法通过jdbc oci驱动程序连接到oracle

coldfusion v 10 std无法通过jdbc oci驱动程序连接到oracle
EN

Stack Overflow用户
提问于 2016-07-14 13:32:57
回答 1查看 1.2K关注 0票数 3

我正在尝试建立一个jdbc连接到coldfusion 10 std服务器上的oracle数据库。

使用jdbc的原因是必须加密应用服务器和数据库之间的数据流动(通过使用sqlnet.ora中的公共设置)。但是,无论我们尝试使用哪种语法,基于服务的jdbc和基于tnsname的jdbc url都无法工作。在保存(并自动测试)连接后,coldfusion立即使用"java.sql.SQLException: Timed试图建立连接“退出。

由于总是会立即抛出错误,所以超时可能已经发生,这看起来很奇怪。因此,我想还有另一个根本原因导致无法建立连接。

外面有什么想法吗?

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

  • 数据源设置:
代码语言:javascript
运行
复制
- Driver Class : `oracle.jdbc.driver.OracleDriver`
- JDBC URL (using tnsnames.ora) : `jdbc:oracle:oci:@<theName>`
- JDBC URL (using ip, port, service) : `jdbc:oracle:oci:@//<IP>:1521/<SID>`

  • 错误信息:
代码语言:javascript
运行
复制
- Connection verification failed for data source: theName

java.sql.SQLException:超时试图建立连接

根本原因是: java.sql.SQLException:超时试图建立连接

  • 环境:
代码语言:javascript
运行
复制
- ojdbc6 driver lives in a directory known to coldfusion
- oci.dll lives in a directory known to the system path variable, verified by sysinternals processexplorer on the coldfusion service
- for the JDBC URL (using tnsnames.ora), the directory containing tnsnames.ora is known as a system variable TNS\_ADMIN, verified by sysinternals processexplorer on the coldfusion service
- along with tnsnames.ora there is a sqlnet.ora file comprising settings to switch on data encryption

堆栈跟踪:

从“这里的数据源名称”请求连接时发生了非SQL错误。超时试图建立连接

代码语言:javascript
运行
复制
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>".
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-29 14:12:06

在配置文件cf-目录\c聚变\bin\jvm.config中添加到oracle即时客户端的路径解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38375687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档