After performing a database 'clone' (a restore of a disk snap and rename using a new controlfile on a non-prod host), I get an error when I attempt to check/use JAVA.
Checking back through logs of clone refreshes, it would appear that this "condition" has existed for some time, even before the apply of the Jan 2018 PSU, so it is not related to that PSU.
Historical background, the database support was outsourced until the beginning of this year, but that service either wasn't aware or didn't act on it, unless an incident was raised.
Seems very little (zero) new development or testing was done against JAVA, so it wasn't detected.
Several years further back, the DB was migrated from Linux to AIX (endian change) using transportable tablespace methodology.
The ERROR
===========
ORA-29548: Java system class reported: release of Java system classes in the database (12.1.0.2.180116 1.7) does not match that of the oracle executable (12.1.0.2.180116 1.6)
IMPORTANT NOTE - see that the internal is reporting a HIGHER version than the executable, (on all hosts).
Also, If I follow instruction MOS instructions on how to remove and replaced the OJVM in the clone, it then words & reports internal DB OJVM version is 1.6.
The Jan 2018 PSU and OJVM PSU's were applied correctly, (both binary and internal DB post-install steps).
So where is the version 1.7 coming from ????
WEB_T (the clone) - This is built & renamed using a recreated control-file from the WEB_P instance shown below.
=======
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.180116 1.7) does not match that of the oracle executable
(12.1.0.2.180116 1.6)
Doing same in WEB_P (prod)
=================
select dbms_java.get_jdk_version() from dual;
DBMS_JAVA.GET_JDK_VERSION()
---------------------------------------------------------------------------------------------------------------------------
1.7.0_171
Why is productio happy with an Internal version HIGHER that the executable, but a clone that has been renamed and open resetlogs - is NOT?
WEB_P Instance history
===================
REGISTRY_HISTORY
--------------------------------------------------------------------------------
21-FEB-16 06.04.42.872261 AM - jvmpsu.sql - RAN jvmpsu.sql
12-MAR-17 09.14.03.181551 AM - jvmpsu.sql - RAN jvmpsu.sql
03-SEP-17 09.59.22.786007 AM - jvmpsu.sql - RAN jvmpsu.sql
25-FEB-18 05.39.50.324408 AM - jvmpsu.sql - RAN jvmpsu.sql
- BOOTSTRAP - RDBMS_12.1.0.2.0DBPSU_AIX.PPC64_161210
PATCH_ID ACTION ACTION_TIME DESCRIPTION STATUS
---------- -------- ---------------------------- ---------------------------------------------------------------- --------
20415564 APPLY 2015-10-07 12:48:34.805625 Database PSU 12.1.0.2.3, Oracle JavaVM Component (Apr2015) SUCCESS
20299023 APPLY 2015-10-07 12:48:34.963839 Database Patch Set Update : 12.1.0.2.3 (20299023) SUCCESS
20415564 ROLLBACK 2016-02-21 06:05:02.970975 Database PSU 12.1.0.2.3, Oracle JavaVM Component (Apr2015) SUCCESS
22139226 APPLY 2016-02-21 06:05:02.975803 Database PSU 12.1.0.2.160119, Oracle JavaVM Component (Jan2016) SUCCESS
21948354 APPLY 2016-02-21 06:05:03.153247 Database Patch Set Update : 12.1.0.2.160119 (21948354) SUCCESS
22139226 ROLLBACK 2017-09-03 09:59:50.668615 Database PSU 12.1.0.2.160119, Oracle JavaVM Component (Jan2016) SUCCESS
26027162 APPLY 2017-09-03 09:59:50.672236 Database PSU 12.1.0.2.170718, Oracle JavaVM Component (JUL2017) SUCCESS
25755742 APPLY 2017-09-03 09:59:51.177352 DATABASE PATCH SET UPDATE 12.1.0.2.170718 SUCCESS
26027162 ROLLBACK 2018-02-25 05:39:59.234299 Database PSU 12.1.0.2.170718, Oracle JavaVM Component (JUL2017) SUCCESS
27001733 APPLY 2018-02-25 05:39:59.245752 Database PSU 12.1.0.2.180116, Oracle JavaVM Component (JAN2018) SUCCESS
26925311 APPLY 2018-02-25 05:39:59.279813 DATABASE PATCH SET UPDATE 12.1.0.2.180116 SUCCESS
SQL> SELECT dbms_java.get_ojvm_property(PROPSTRING=>'java.version') FROM dual
DBMS_JAVA.GET_OJVM_PROPERTY(PROPSTRING=>'JAVA.VERSION')
--------------------------------------------------------------------------------
1.7.0_171
1 row selected.
SQL> create function get_java_property(prop in varchar2)
return varchar2 is
language java name 'java.lang.System.getProperty(java.lang.String) return java.lang.String';
Function created.
SQL> select get_java_property('java.version') from dual
GET_JAVA_PROPERTY('JAVA.VERSION')
--------------------------------------------------------------------------------
1.7.0_171
1 row selected.
SQL> drop function get_java_property
Function dropped.
Now, the O.S info
==============
(oracle)[WEB_P]/nas_mnt/vol/dba_common/dba/wo/bin/sql$: cd $ORACLE_HOME/jdk/bin
(oracle)[WEB_P]/opt/oracle/product/db/12.1.0.2/jdk/bin$: ./java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pap6460sr16-20140418_01(SR16))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 AIX ppc64-64 jvmap6460sr16-20140416_196573 (JIT enabled, AOT enabled)
J9VM - 20140416_196573
JIT - r9_20130920_46510ifx5
GC - GA24_Java6_SR16_20140416_1614_B196573)
JCL - 20140406_01
A complete recompile of executables (to Jan 2018 PSU level) still results in Version 1.6 Java binary.
OPATCH info
============================================================================
(oracle)[WEB_P]/opt/oracle/product/db/12.1.0.2/jdk/bin$: cd $ORACLE_HOME/OPatch
(oracle)[WEB_P]/opt/oracle/product/db/12.1.0.2/OPatch$: ./opatch lsinventory
Oracle Interim Patch Installer version 12.2.0.1.12
Copyright (c) 2018, Oracle Corporation. All rights reserved.
Oracle Home : /opt/oracle/product/db/12.1.0.2
Central Inventory : /opt/oracle/oraInventory
from : /opt/oracle/product/db/12.1.0.2/oraInst.loc
OPatch version : 12.2.0.1.12
OUI version : 12.1.0.2.0
Log file location : /opt/oracle/product/db/12.1.0.2/cfgtoollogs/opatch/opatch2018-09-26_11-05-13AM_1.log
Lsinventory Output file location : /opt/oracle/product/db/12.1.0.2/cfgtoollogs/opatch/lsinv/lsinventory2018-09-26_11-05-13AM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: XXX-ml3orap2.XXX.com.au
ARU platform id: 212
ARU platform description:: IBM_AIX
Installed Top-level Products (1):
Oracle Database 12c 12.1.0.2.0
There are 1 products installed in this Oracle Home.
Interim patches (5) :
Patch 27001733 : applied on Tue Feb 13 14:54:43 GMT+10:00 2018
Unique Patch ID: 21732540
Patch description: "Database PSU 12.1.0.2.180116, Oracle JavaVM Component (JAN2018)"
Created on 20 Nov 2017, 08:04:36 hrs PST8PDT
Bugs fixed:
22674709, 25076756, 19176885, 25067795, 19153980, 20415564, 21555660
21047803, 21188537, 27000663, 27001733, 23177536, 24448240, 22139226
19909862, 21811517, 22675136, 25494379, 24534298, 19895326, 24917972
19231857, 19895362, 23265965, 24448282, 26027162, 26023002, 22670413
19623450, 24315824, 21659726, 26023025, 25494413, 21566993, 19855285
25437695, 22670385, 27000690, 23265914, 19699946, 26635845, 23727148
19223010, 21068507, 19877336, 25076732, 22118835, 22118851, 26637592
26570171, 20408829, 21047766, 19245191, 20408866, 21566944
Patch 26925311 : applied on Tue Feb 13 14:43:38 GMT+10:00 2018
Unique Patch ID: 21850621
Patch description: "Database Patch Set Update : 12.1.0.2.180116 (26925311)"
Created on 8 Dec 2017, 08:46:27 hrs PST8PDT
Sub-patch 26713565; "Database Patch Set Update : 12.1.0.2.171017 (26713565)"
Sub-patch 26609783; "Database Patch Set Update : 12.1.0.2.170814 (26609783)"
Sub-patch 25755742; "Database Patch Set Update : 12.1.0.2.170718 (25755742)"
Sub-patch 25171037; "Database Patch Set Update : 12.1.0.2.170418 (25171037)"
Sub-patch 24732082; "Database Patch Set Update : 12.1.0.2.170117 (24732082)"
Sub-patch 24006101; "Database Patch Set Update : 12.1.0.2.161018 (24006101)"
Sub-patch 23054246; "Database Patch Set Update : 12.1.0.2.160719 (23054246)"
Sub-patch 22291127; "Database Patch Set Update : 12.1.0.2.160419 (22291127)"
Sub-patch 21948354; "Database Patch Set Update : 12.1.0.2.160119 (21948354)"
Sub-patch 21359755; "Database Patch Set Update : 12.1.0.2.5 (21359755)"
Sub-patch 20831110; "Database Patch Set Update : 12.1.0.2.4 (20831110)"
Sub-patch 20299023; "Database Patch Set Update : 12.1.0.2.3 (20299023)"
Sub-patch 19769480; "Database Patch Set Update : 12.1.0.2.2 (19769480)"
Bugs fixed:
19309466, 24570598, 25475853, 21172913, 19902195, 18250893, 17655240
19383839, 21266085, 19028800, 19035573, 16756406, 19366375, 18456643
26546664, 24523374, 25034396, 19289642, 18845653, 19915271, 21291274
.
. many lines removed here..
.
The simplest fix will be to reinstall JAVA in production when we next have a PSU outage (October), but inquiring minds would like to know how this strange situation may have come about?
Even WHERE the OJVM stores the version number internally?? :-)
Cheers & Regards
Vin.