Skip to Main Content

Java and JavaScript in the Database

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-29548: Java system class reported: release of Java system classes in the database (12.1.0.2.1801

vsmithSep 30 2018 — edited Oct 1 2018

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.

This post has been answered by vsmith on Oct 1 2018
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 29 2018
Added on Sep 30 2018
1 comment
25,431 views