JDBC 从 Oracle 12c 返回 01034 错误,但 SqlPlus 正常



在类路径中使用Java7,使用ojdbc7.jar

适用于Windows,在同一服务器上使用12c db和Java7应用程序

在 AIX 上失败,数据库和应用程序位于不同的服务器上

(很遗憾,没有对 AIX 数据库服务器的登录访问权(

12c tnsping SID 在 AIX 应用程序服务器上成功,显示与 Java7 应用程序使用的 JdbcUrl=HOST:PORT:SID 相同的主机和端口

12c sqlplus 能够成功连接到数据库,但 JDBC 连接尝试返回以下错误:

ORA-01034:甲骨文不可用ORA-27101:共享内存领域不存在IBM AIX RISC SYSTEM/6000 错误: 2: 没有这样的文件或目录其它资讯:2311附加信息:214767799

(sqlplus 可以连接,所以请不要建议 Oracle 启动(

提前感谢您对 Java7 客户端应用程序或远程数据库服务器 JDBC 连接进行故障排除的任何建议

您的 TNS 别名是用 SERVICE_NAME 而不是 SID 定义的,并且由于使用该别名连接有效,因此服务名称有效,但数据库具有与 SID 不同的 SID - 这是完全有效的。例如,为了兼容,可能保留了旧的服务名称。

您的 JDBC URL 正在使用 SID 构造,因为它以 :STG57 结尾。如果改为以 /STG57 结尾,则将改用服务名称构造:

jdbc:oracle:thin:@cstgb501:1525/STG57

然后,您将使用与 SQL*Plus 通过 TNS 相同的连接数据。

您可以在文档中阅读有关 JDBC URL 语法的更多信息。

最新更新