programing

Oracle DB에 연결할 때 네트워크 어댑터가 연결을 설정할 수 없습니다.

subpage 2023. 6. 8. 19:50
반응형

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의 IP도 텔넷으로 연결했습니다.로컬 WebLogic Application Server에서 데이터 소스에 연결해도 문제가 없습니다.또한 sqdeveloper를 통해 데이터베이스에 연결하려고 하면 데이터베이스에 연결할 수 있습니다.

그러나 독립 실행형 애플리케이션(테스트용)에서 데이터베이스에 액세스해야 합니다.이 문제가 왜 발생하는지 아시는 분 있나요?그리고 원격 Oracle 데이터베이스에 연결할 수 있는 대안이 있는지 여부, sqdeveloper와 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 Listener 서비스에 연결합니다.클라이언트를 다른 포트로 리디렉션하는 경우가 많습니다.따라서 클라이언트는 방화벽에 의해 차단된 다른 포트에서 다른 연결을 열어야 합니다.

따라서 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 주소 대신 호스트 이름을 사용하기 시작하면서 이 문제가 해결되었습니다.

언급URL : https://stackoverflow.com/questions/7834157/the-network-adapter-could-not-establish-the-connection-when-connecting-with-orac

반응형