Skip to Main Content

Breadcrumb

OPatch Upgrade bringt Java Fehler

Fehler beim OPatch Upgrade auf 13.9.1

Die Ausgangssituation

Beim Einspielen diverser Agent- bzw. OMS-Patches für Oracle Enterprise Manager Cloud Control 13.2 ist die Installation von OPatch Version 13.9.1.0.0 verpflichtend.

War bisher die Installation neuer OPatch Versionen auf das Entpacken der jeweiligen Zip-Dateien unter dem entsprechenden Oracle Home beschränkt, muss ab Version 13.9 die Installation neuer OPatch Versionen mittels JAR (Java Archive) durchgeführt werden.

[oracle@node1 ~]$ java -jar /stage/6880880/opatch_generic.jar -silent oracle_home=/u01/app/oracle/middleware_13.2

Das Problem

Falls die Java Version bzw. der Umfang der Java Installation nicht dem entsprechen, was OPatch erwartet, kann es u.a. zu folgender Fehlermeldung kommen:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/oracle/cie/nextgen/launcher/Launcher : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:648)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.net.URLClassLoader$1.run(URLClassLoader.java:206)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:325)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:296)
at java.lang.ClassLoader.loadClass(ClassLoader.java:270)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:406)

Die Analyse

Checken welches Java genau verwendet wird.

[oracle@node1 ~]$ which java
/usr/bin/java
[oracle@node1 ~]$ java -version
java version "1.6.0_41"
OpenJDK Runtime Environment (IcedTea6 1.13.13) (rhel-1.13.13.1.el6_8-x86_64)
OpenJDK 64-Bit Server VM (build 23.41-b41, mixed mode)

Es wird nicht die Java Umgebung des Oracle Enterprise Manager Cloud Control - genauer gesagt dessen Middleware Komponente - verwendet.

Die Lösung

1) Umgebungsvariablen setzen:

[oracle@node1 ~]$ export ORACLE_HOME=/u01/app/oracle/middleware_13.2 # Middleware Oracle Home für Enterprise Manager Cloud Control
[oracle@node1 ~]$ export JAVA_HOME=$ORACLE_HOME/oracle_common/jdk
[oracle@node1 ~]$ export PATH=$JAVA_HOME/bin:$PATH

2) Java Version verifizieren:

[oracle@node1 ~]$ which java
/u01/app/oracle/middleware_13.2/oracle_common/jdk/bin/java
[oracle@node1 ~]$ java -version
java version "1.7.0_111"
Java(TM) SE Runtime Environment (build 1.7.0_111-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.111-b13, mixed mode)

3) OPatch Upgrade neuerlich durchführen:

[oracle@node1 ~]$ java -jar /stage/6880880/opatch_generic.jar -silent oracle_home=/u01/app/oracle/middleware_13.2

4) OPatch Upgrade verifizieren:

[oracle@node1 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 13.9.1.0.0

OPatch succeeded.

Anmerkung

Die Patchnummer für den Download von OPatch ist gleichgeblieben, nämlich 6880880.