ORA-29548: Java system class reported

I faced with that error message our 12c exadata system. Our development team send that error message to dba team.

Complete error message is:

[Error] Execution (1: 1): ORA-29548: Java system class reported: release of classes.bin in the database does not match that of the oracle executable
ORA-06512: at “MDSYS.SDO_JAVA_STP”, line 370
ORA-06512: at “MDSYS.SDO_UTIL”, line 3188
ORA-06512: at “MDSYS.SDO_UTIL”, line 321

I made some search and I found below select. If you try to run this query, you will hit same error as mention before.

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

So what is solution. You need to run /update_javavm_db.sql which is under javavm folder. After run below steps than please rerun select query again. You will see you will not hit this error message anymore.

myserver# /home/oracle> echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0/db_1
myserver /home/oracle> sqlplus "/as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Tue Nov 12 14:24:08 2019

Copyright (c) 1982, 2014, Oracle. All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> @/u01/app/oracle/product/12.1.0/db_1/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> alter session set "_ORACLE_SCRIPT"=true;
Session altered.


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.

SQL> 
SQL> Select dbms_java.get_jdk_version() from dual;

DBMS_JAVA.GET_JDK_VERSION()
--------------------------------------------------------------------------------
1.6.0_71


Yorum bırakın