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.