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; |