Error after apply the Q3 OJVM patch 30012911 which cause object invalid

Error after apply the Q3 OJVM patch 30012911 which cause object invalid

Error
On apply the Q3 patch on 11204 version of database, leave the java component invalid state.
Some objects are showing invalid after applying Q3 Patch on database release version 11.2.0.4.

Problem Description
Before installing the path objects was valid but after installing the patch some objects shown invalid.
please find the component list remain invalid after apply Q3 patch:
JServer JAVA Virtual Machine
Oracle Database Java Package

Opatch lsinventory

Patch 30012911 : applied on Thu Sep 12 23:36:18 MDT 2019
Unique Patch ID: 23043379
Patch description: "WINDOWS ORACLE JAVAVM COMPONENT BUNDLE PATCH 11.2.0.4.190716"
Created on 29 Jul 2019, 09:52:16 hrs PST8PDT

Caused
This error belong to Oracle patch, Oracle postinstall.sql file show the entry of old patch (28994059).
Oracle POSTDEINSTALL.SQL also has same entry. you can open this file and check the following lines present in it.

--install
'insert into registry$history (action_time, action, id, comments) values (systimestamp, ''APPLY'', 28994059, ''Patch 28994059 applied'')';

-- Deinstall
'insert into registry$history (action_time, action, id, comments) values (systimestamp, ''ROLLBACK'', 28994059, ''Patch 28994059 rolled back'')';

Solution:

Solution 1:
1. Oracle released new update of this patch on 18-Sept. You should applied new patch released to overcome this issue.
Download from here : https://updates.oracle.com/download/30012911.html

Solution 2:
Temporary compile your java component with the following commands:

1)Check the current value of _system_trig_enabled :
connect / as sysdba
select x.ksppinm name,
y.ksppstvl value,
ksppdesc description
from x$ksppi x,
x$ksppcv y
where x.inst_id = userenv('Instance')
and y.inst_id = userenv('Instance')
and x.indx = y.indx
and x.ksppinm = '_system_trig_enabled';

2)Check the current value of java_jit_enabled
show parameter java_jit_enabled

3) Check the value of JOB_QUEUE_PROCESSES
select * from v$parameter where name='JOB_QUEUE_PROCESSES';

4)Now execute the below step as sysdba :
alter system set "_system_trig_enabled" = false scope=memory;
alter system set java_jit_enabled=false;
alter system set JOB_QUEUE_PROCESSES=0;

create or replace java system
/

5)Revert the value of _system_trig_enabled, JOB_QUEUE_PROCESSES and java_jit_enabled.

6)Run utlrp.sql to validate any invalid Java objects.
@?/rdbms/admin/utlrp.sql

7) Now, please execute the test query and verify if you get the JDK version :
SELECT dbms_java.get_ojvm_property(PROPSTRING=>'java.version') FROM dual;

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 )

Google photo

You are commenting using your Google 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.