Do Not Think!!!

최근 사진

2011/12 시즌 2012년 2월 18-19일 용평리조트
2011/12 시즌 2012년 1월 27-28일 휘닉스파크
사무실 이사
2011/12시즌 2011년 12월 17일 휘닉스파크
2011/12시즌 2011년 12월 10일 휘닉스파크
2011/12시즌 2011년 12월 4일 휘닉스파크
2011/12시즌 2011년 11월 26일 휘닉스파크
2011년 8월 뉴질랜드 여행
2011년 5월 4일 ~ 7일 홍콩 워크샵 사람
2011년 5월 4일 ~ 7일 홍콩 워크샵 넷 째날

최근 트랙백

Total226676
Today5
Yesterday103
지난 4월 5일 (목)요일 정통부에서 작업 할 당시, 발생한 에러입니다. 그런데 오늘 국방부에서 작업하는데 똑같은 에러가 발생하네요.

물론 정통부에서 작업 할 때에는, 다른 문제 때문이었었는데, 그때에도 문제를 해결하는 과정에서 오늘 발생한 문제에 대한 내용을 봤었습니다. 그때에는 다른 문제라 생각하고 그냥 지나쳤었는데, 오늘 이 에러를 접하고 나니, 바로 정리하지 못한 아쉬움이 남네요.


시스템은 그림에서 보이는 것 처럼 구성되어 있습니다.
  1. Client 와 WAS는 CORBA로 연결됩니다.
  2. WAS와 DB는 다른 네트워크에 존재합니다.
현상은 다음과 같습니다.
  1. Client <-----> DB 2-티어로 잘 연결됩니다.
  2. Client <-----> WAS <-----> DB 3-티어로는 DB에 연결이 되지 않습니다.
에러 로그는 다음과 같습니다.
Caused by: java.sql.SQLException: IO 예외 상황: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)


그림 보기



이런 에러가 발생하는 이유로는 네트워크로 데이터베이스에 접근하지 못하는 문제인데,
  1. 리스너가 안떠있거나
  2. 호스트명이 잘못되어있거나
  3. 방화벽문제
인 경우가 대부분입니다.

실제 웹에서 검색을 해보면, 1번과 2번 때문에 이런 문제가 발생한다는 것과, 그에대한 해결방법에 대해 많이 찾을 수 있었습니다. 하지만 2-티어로는 접속이 잘 되고 있는 상황이기 때문에, 다른 원인을 찾아야만 했는데, 그래서 찾은 원인은 Oracle이 Multithreaded Server (MTS)로 설정되어 있을 경우 ORA-17002 (ORA-12505) 문제가 발생한다는 것입니다.

해결방법으로는 다음과 같은 접속 URL 대신에
JDBC Thin 드라이버 Orcle 접속 URL (Language : java)
"jdbc:oracle:thin:@<HOST>:<PORT>:<SID>"

다음 URL을 사용합니다.
Multithreaded Server (MTS)가 설정된 Oracle에 접속하기 위한 JDBC Thin 드라이버 Oracle 접속 URL (Language : java)
"jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST>(PORT=<PORT>)))(CONNECT_DATA=(SERVICE_NAME=<SID>)(SERVER=DEDICATED)))"

크리에이티브 커먼즈 라이센스
Creative Commons License

Trackback Address :: http://dont.pe.kr/tt/trackback/50

  • The Network Adapter could not establish the connection

    Tracked from 대한민국 상위 1% 삭제 2008/05/26 15:46

    org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (IO 예외 상황: The Network Adapter could not establish the connection)at org.apache.commons.dbcp.BasicDataSource.createD

Name

Password

Homepage

Secret