Public/tip & tech

오라클 환경 문제 해결방안

quantapia 2012. 11. 30. 11:11

JDBC를 이용하여 오라클 연동하는데 아래와 같은 에러메시지가....

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
10.1xx.xx.xxx:1521:dbdivivr

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
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)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at common.EurmCallBackDB.<init>(EurmCallBackDB.java:39)
at common.Test.main(Test.java:5)
Exception in thread "main" java.lang.NullPointerException
at common.EurmCallBackDB.getSequence(EurmCallBackDB.java:59)
at common.Test.main(Test.java:10)



SID를 이용할 때와 ServiceName을 이용할 때 connection url 설정이 틀려진다. 

SID일 경우                - "jdbc:oracle:thin:@" + dbip + ":" + dbport + ":" + dbsid;
ServiceName일 경우 - "jdbc:oracle:thin:@" + dbip + ":" + dbport + "/" + dbsid;   

근데.. "jdbc:oracle:thin:@" + dbip + ":" + dbport + "/" + dbsid; 이렇게 설정을 했을 경우 Java Application에서는 동작을 하는데... 
JSP에서는 제대로 동작을 안한다... ㅡㅡ;;
아래와 같은 에러 메시지 발생 ㅡㅡ;;

java.sql.SQLException: IO 예외 상황: Invalid connection string format, a valid format is: "host:port:sid" 



구글링을 하다보니 아래 형식으로 하면 된다더군요..

connectInfo = "jdbc:oracle:thin:@//" + dbip + ":" + dbport + "/" + dbsid;

참고 사이트 : 
http://stillrabbit.blogspot.com/2009/01/jdbc-config-oracle-resource.html
 


된다~