You might have encountered ORA-29548: Java system class reported error after applying OJVM patch in Oracle.
ORA-29548: Java system class reported: release of Java system classes in the database (19.0.0.0.200114 1.8) does not match that of the oracle executable (19.0.0.0.200714 1.8) ORA-06512: at line 1.
Recently we applied July 2020 database and OJVM PSU patch in Oracle database 19c which went very smooth but adpatch on APPS R12 failed due to error “ATTENTION: All workers either have failed or are waiting:”
On further investigation we observed ORA-29548 error in log file.
How to Resolve ORA-29548: Java system class reported?
Most of the time this error comes when you have not completed post patch steps for JVM Patch or if there is a problem with JAVA. First of all check if you are getting the same error using below query.
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 (19.0.0.0.200114 1.8) does not match that of the oracle executable (19.0.0.0.200714 1.8)
Workaround for this issue is to run “update_javavm_db.sql” script as a sys user. If you are using 12c, 19c multitenant container and pluggable database then you need to run this script in both CDB and PDB.
sqlplus / as sysdba 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.
Check the version again. This time you should not get any error.
SQL> select dbms_java.get_jdk_version() from dual; DBMS_JAVA.GET_JDK_VERSION() 1.8.0_261 1 row selected.