바로가기 메뉴
메인메뉴 바로가기
본문내용 바로가기
  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;

  • 리스트

Site Information

9th floor, Ilhwan Bldg., 703-5, Yeoksamdong, Gangnamgu, Seoul, Korea TEL : 02-6447-6988   FAX : 02-6447-6989

Copyright 2013 eGlobal system. All Rights Reserved.