从9i升级数据库到11gR2,在upgrade的过程中,报下面的错误导致升级暂停
SQL> -- Verify that a simple java stored procedure works
SQL> select dbms_java.longname('foo') from dual;
select dbms_java.longname('foo') from dual
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
ERROR:
ORA-03114: not connected to ORACLE

通过查询MOS,解决方法如下:

ORA-29553: class in use error on 9.2 to 11.2 Migration [ID 1225653.1]


修改时间 15-JUN-2011     类型 PROBLEM     状态 MODERATED

In this Document
Symptoms
Cause
Solution
References



This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.


Applies to: Oracle Server - Enterprise Edition - Version: 11.2.0.1 and later   [Release: 11.2 and later ]
Information in this document applies to any platform.
Symptoms

When doing a migration from database version 9.2 to version 11.2. the following issues are seen:

1) Catupgrd.sql fails with following error:

SQL> -- Verify that a simple java stored procedure works
SQL> select dbms_java.longname('foo') from dual;
select dbms_java.longname('foo') from dual
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel

2) Associated error in alertlog is:

ORA-07445: exception encountered: core dump [jom_prepare_clint()+596]

Cause

This error actually stems from earlier in the catupgrd.sql output when the JVM was not loaded correctly due to ORA-29553: class in use.

SQL>
SQL> -- Load all the Java classes
SQL> begin if initjvmaux.startstep('CREATE_JAVA_SYSTEM') then
2 initjvmaux.rollbacksetup;
3 commit;
4 initjvmaux.rollbackset;
5 initjvmaux.exec('create or replace java system');
6 commit;
7 initjvmaux.rollbackcleanup;
8 initjvmaux.endstep;
9 end if; end;
10 /
begin if initjvmaux.startstep('CREATE_JAVA_SYSTEM') then
*
ERROR at line 1:
ORA-29553: class in use: SYS.javax/jms/TemporaryTopic
ORA-06512: at "SYS.INITJVMAUX", line 23
ORA-06512: at line 5

Note: The class named in the Ora-29553 error can be different than shown in this example.

This is result of unpublished  Bug 10165223.  It can occur when more than one heap manager subpool is in use, and Java class objects can potentially remain heap-manager pinned leading to the ORA-29553.

Solution

Request a one off patch for bug or the following workarounds are available.

For manual migrations from 9.2 to 11.2:

- Use a SGA size less than 1GB.

OR

- Set hidden parameter '_kghdsidx_count' to 1 in parameter file. This sets use of 1 subpool and can be removed after migration is complete.


For migrations using DBUA from 9.2 to 11.2:

- Use a SGA size less than 1GB.