[英]IO Error: The Network Adapter could not establish the connection when running oracle DB as docker container
[英]The Network Adapter could not establish the connection when connecting with Oracle DB
尝试通过 JDBC 连接远程 Oracle 数据库时,我收到以下异常:
java.sql.SQLRecoverableException: IO-fout: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
at java.sql.DriverManager.getConnection(DriverManager.java:322)
at java.sql.DriverManager.getConnection(DriverManager.java:358)
以下是我的设置:
Database: Oracle 10g Release 2 Standard Edition
JDBC library: ojdbc6.jar
JDBC driver: oracle.jdbc.driver.OracleDriver
JDBC URL: jdbc:oracle:thin:@9.2.2.2:1521:ORCL where ORCL is database's SID
JDBC User/pwd: Correct username / password
这个问题的奇怪之处在于,当我下班时,连接工作正常。 但是,当我尝试通过 AT&T VPN 连接在家中进行连接时,它不起作用。
我已经确认我可以访问 IP 地址,并且还在端口 1521 上 telnet ip,这工作得很好。 从本地 WebLogic 应用服务器连接到数据源也正常。 此外,当尝试通过 sqldeveloper 连接到数据库时,我也可以访问数据库。
但是,我需要从独立应用程序(用于测试目的)访问数据库。 有谁知道为什么会出现这个问题? 以及是否有连接到远程 Oracle 数据库的替代方案,sqldeveloper 和 weblogic 可能使用的替代方案?
以下是尝试连接数据库的代码摘录:
public static void main(String args[]) throws ClassNotFoundException, SQLException {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@9.2.2.2:1521:ORCL", "user", "pwd");
}
当客户端连接到 Oracle 服务器时,它首先连接到 Oracle 侦听器服务。 它经常将客户端重定向到另一个端口。 因此客户端必须在不同的端口上打开另一个连接,该连接被防火墙阻止。
因此,由于 Oracle 端口重定向,您实际上可能遇到了防火墙问题。 应该可以通过客户端计算机上的网络监视器或防火墙上的防火墙管理软件对其进行诊断。
如果它在 Linux 机器上,我建议您将数据库 IP 名称和 IP 解析添加到/etc/hosts
。
我有同样的错误,当我们执行上述操作时,它工作正常。
看看这篇关于 Java Ranch 的帖子:
http://www.coderanch.com/t/300287/JDBC/java/Io-Exception-Network-Adapter-could
“我的“Io 异常:网络适配器无法建立连接”异常的解决方案是将数据库服务器的 IP 替换为 DNS 名称。”
我以前有过类似的问题。 但是当我开始在连接字符串中使用主机名而不是 IP 地址时,这个问题得到了解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.