ERROR: ORA-29548 ORA-29548: Java system class reported: release of Java system classes in the database (12.1.0.2.160419 1.6) does not match that of the oracle executable (12.1.0.2.170117 1.6)

Mostly this error is caused when JVM post patching activities are not completed properly. The workaround is to run the JVM update as follows:

SQL> select dbms_java.get_jdk_version() from dual;
select dbms_java.get_jdk_version() from dual
*
ERROR at line 1:
ORA-29548: Java system class reported: release of Java system classes in the
database (12.1.0.2.160419 1.6) does not match that of the oracle executable
(12.1.0.2.170117 1.6)

SQL> select comp_id,status,version,modified from dba_registry;

COMP_ID STATUS VERSION MODIFIED


DV VALID 12.1.0.2.0 25-MAY-2019 03:14:29
OLS VALID 12.1.0.2.0 18-FEB-2022 14:19:09
OWM VALID 12.1.0.2.0 25-MAY-2019 03:14:14
XDB VALID 12.1.0.2.0 25-MAY-2019 03:13:36
CATALOG VALID 12.1.0.2.0 25-MAY-2019 03:13:25
CATPROC VALID 12.1.0.2.0 25-MAY-2019 03:13:26
JAVAVM VALID 12.1.0.2.0 25-MAY-2019 03:14:19
XML VALID 12.1.0.2.0 25-MAY-2019 03:14:21
CATJAVA VALID 12.1.0.2.0 25-MAY-2019 03:14:22
RAC VALID 12.1.0.2.0 25-MAY-2019 03:14:23

10 rows selected.

Run the following script as a workaround to update the JVM

SQL> @?/javavm/install/update_javavm_db.sql
SQL> SET FEEDBACK 1
SQL> SET NUMWIDTH 10
SQL> SET LINESIZE 80
SQL> SET TRIMSPOOL ON
SQL> SET TAB OFF
SQL> SET PAGESIZE 100
SQL>
SQL> alter session set “_ORACLE_SCRIPT”=true;

Session altered.

SQL>
SQL> — If Java is installed, do CJS.
SQL>
SQL> — If CJS can deal with the SROs inconsistent with the new JDK,
SQL> — the drop_sros() call here can be removed.
SQL> call initjvmaux.drop_sros();

Call completed.

SQL>
SQL> create or replace java system;
2 /

Java created.

SQL>
SQL> update dependency$
2 set p_timestamp=(select stime from obj$ where obj#=p_obj#)
3 where (select stime from obj$ where obj#=p_obj#)!=p_timestamp and
4 (select type# from obj$ where obj#=p_obj#)=29 and
5 (select owner# from obj$ where obj#=p_obj#)=0;

0 rows updated.

SQL>
SQL> commit;

Commit complete.

SQL>
SQL> alter session set “_ORACLE_SCRIPT”=false;

Session altered.

After executing the JVM update, now the Java version is showing up without the error

SQL> select dbms_java.get_jdk_version() from dual;

DBMS_JAVA.GET_JDK_VERSION()

1.6.0_141

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s