바로가기 메뉴
메인메뉴 바로가기
본문내용 바로가기
  1. HOME  >
  2.   Case Management  >
  3.   Knowledge Search

Knowledge Search

Knowledge search

Title

[ORACLE] 암복호화 시 ORA-00600[kglobpg_is_pkp] 발생

Product

Plug-In

Phenomenon

initjvm.sql로 oracle jvm 수동 설치 후 암복호화 테스트 시 ORA-00600[kglobpg_is_pkp] 에러 발생

Cause

9i - 10g로 upgrade 한 DB의 경우 initjvm.sql을 수동으로 설치하면 dependency$ 테이블에 logical corruption이 발생하여
java class 및 java source loading시에 ORA-00600[kglobpg_is_pkp] 에러가 발생 할 수 있음.

메타링크 문서

----------------------------------------------------------------------------------------

Symptoms
When creating a Java Stored Procedure by loading java source or java class into the database, typically:
CREATE AND COMPILE JAVA SOURCE NAMED ...
the following error occurs (looking similar to):

ORA-00600: internal error code, arguments: [kglobpg_is_pkp], [0x3AF156188], [], [], [], [], [], []
The (top of the) Call Stack Trace shows:

kglobpg kgldtld kqllod kglobld kglobpn kglpim kglpin ioc_lookup_name

Changes
- Database has been upgraded from 9i to 10G
- Oracle JVM has been installed in the database by running initjvm.sql
Also, there may be other circumstances that lead to this particular error.

Cause
This error means that an internal assertion fails because we are purging a library cache object
and we find the object is marked permanently fixed so we should not be purging this in the first place.
This particular error is the Oracle10g equivalent of unpublished Bug 2262358.
This means some logical corruption in dependency$, which is usually caused by not following the
correct upgrade procedures since the SQL that corrects this is in udjvmrm.sql, called by jvmdbmig.sql
that migrates the Oracle JVM to the current version.
This type of mismatch in dependency$ typically causes an ORA-600 [17081] in Oracle 9.2.0

Solution
Login to sqlplus and connect / as sysdba, then run the following SQL:

update dependency$ set p_timestamp =
(select stime from obj$
where obj#=p_obj#)
where (select stime from obj$
where obj#=p_obj#)!=p_timestamp and
(select type# from obj$ where obj#=p_obj#)=29
and (select owner# from obj$ where obj#=p_obj#)=0;

Note: The above statement, although it updates a data dictionary table, is 'harmless'
and does not break anything when for some reason the ORA-600 [kglobpg_is_pkp]
is not caused by mismatches in dependency$.

-------------------------------------------------------------------------------------


Solution

9i ~ 10g로 upgrade 한 DB의 경우 initjvm.sql을 수동 설치 후 아래의 update 구문을 as sysdba로 접속하여 실행할 것.

update dependency$ set p_timestamp =
(select stime from obj$
where obj#=p_obj#)
where (select stime from obj$
where obj#=p_obj#)!=p_timestamp and
(select type# from obj$ where obj#=p_obj#)=29
and (select owner# from obj$ where obj#=p_obj#)=0;

  • 리스트

사이트정보

서울특별시 강남구 역삼동 703-5 일환빌딩 9층 (주)이글로벌시스템  TEL : 02-6447-6988  FAX : 02-6447-6989

Copyright 2013 (주)이글로벌시스템 All Rights Reserved.