posted by 구름너머 2005. 11. 4. 13:10

1. 현상
현재 Oracle 8.0.6.3.0에 WL6.1 sp2를 이용하여
Thin 드라이브로 Connection Pool 연결하여 사용하던 중
Oracle 9.2.0.1.0나 9.2.0.4.0에 연결시
ORA-00600 에러가 남!
JDK : 1.4.2_07
Oracle Client : 9i

java.sql.SQLException: ORA-00600: internal error code, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], []

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:889)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:1681)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1870)
at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:5303)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:544)
at weblogic.jdbc.pool.Statement.executeQuery(Statement.java:850)
at weblogic.jdbc.rmi.internal.StatementImpl.executeQuery(StatementImpl.java:79)
at weblogic.jdbc.rmi.SerialStatement.executeQuery(SerialStatement.java:80)
at com.pjedf.df.db.JStatement.executeQuery(JStatement.java:81)
at com.kt.icbs.dao.DAOBCDG110E.confirmUserInfo(DAOBCDG110E.java:87)
at com.kt.icbs.sessionbean.SBCDG110E.SBCDG110EBean.confirmUserInfo(SBCDG110EBean.java:56)
at com.kt.icbs.sessionbean.SBCDG110E.SBCDG110ESession_bsu6fg_EOImpl.confirmUserInfo(SBCDG110ESession_bsu6fg_EOImpl.java:169)
at com.kt.icbs.sessionbean.SBCDG110E.SBCDG110ESession_bsu6fg_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:166)
at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:92)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:112)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:262)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:229)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy684.confirmUserInfo(Unknown Source)
at com.kt.icbs.fc.FCBCDG110E.confirmUserInfo(FCBCDG110E.java:45)
at jsp_servlet._bcdg._bcdg100.__bcdg111e._jspService(__bcdg111e.java:204)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

2.조치
웹로직 구동시 클래스 패스를 변경함.
근거는 아래 참조.
☞ 결과 : 성공 !!!

========================================================================================
oci드라이브는 기본적으로 웹로직이 깔려있는 서버에 오라클 클라이언트가 깔려야 합니다.
그리고 thin드라이브는 그것이 필요없죠..
실무에서는 thin 드라이브를 대부분 사용합니다.
oci드라이브에는 특수한 몇가지 기능이 있지만 그기능을 잘 아는 개발자도 없고
지금까지 검정된것은 thin드라이브 이기때문에 많이 사용합니다.
thin드라이브는 해당 오라클 버젼에 맞는것을 다운받아서

웹로직 서버 클래스 패스에 weblogic.jar보다 앞에 적어줘야 합니다.

왜냐면 weblogic.jar에도 thin드라이브가 있어서
앞에다 적어야 해당 드라이브가 적용되는 것입니다
from cafe.daum.net/weblogic 주인장....
========================================================================================

'JAVA' 카테고리의 다른 글

Runtime.getRuntime().exec( cmd )  (1) 2005.11.25
StringTokenizer for JDK1.5.0  (0) 2005.11.25
javadoc  (0) 2005.10.01
Definition of JDBC type 4 driver  (0) 2005.09.06
Definition of JDBC type 3 driver  (0) 2005.09.06