Oracle Java 8およびWeblogic12がインストールされたRHEL7サーバーがあります。
Java 8は、RedHatのrpmを使用してインストールされました。 Weblogicは、インストールパッケージとOracleの指示を使用してインストールされました(Redhatから利用できるrpmはありませんでした)。 Weblogicのインストール中に、シンボリックリンクパスをJava_HOME
、/usr/lib/jvm/Java-Oracle
として指定しました。 weblogicがインストールされたとき、シンボリックリンクチェーンは/usr/lib/jvm/Java-Oracle
-> /etc/alternatives/Java_sdk_Oracle
-> /usr/lib/jvm/Java-1.8.0-Oracle-1.8.0.141-1jpp.1.el7_3.x86_64
でした。
RedHatから新しいrpmをインストールして、アップデート141からアップデート161へのJava 8インストールにパッチを適用しようとしました。その後、Weblogicが起動しませんでした。
調査の結果、Weblogicインストールスクリプトがシンボリックリンクを解決し、ターゲット/usr/lib/jvm/Java-1.8.0-Oracle-1.8.0.141-1jpp.1.el7_3.x86_64
をweblogicインストールディレクトリの下のいくつかの構成ファイルにハードコーディングしたことがわかりました。 Java 8 update161インストールはupdate141を削除しました。
したがって、Java 8とWeblogicは、Javaを見つける方法について異なる意見を持っているようです。
可能な解決策:
Javaにパッチを適用した後、Weblogicインストールの構成ファイルを変更します。
Javaにパッチを適用した後、Weblogicをアンインストール/再インストールします。
Javaにパッチを適用しないでください。
その他
最初の3つの解決策はどちらもあまり良くないようです。
Redhatサーバー上のWeblogic12のアップグレード/パッチ適用Java)に関して推奨される方法/ベストプラクティスは何ですか?より良い方法はありますか?
誰も答えを出していないので、私たちが何をしているのかを説明します。
WebLogicは、ミドルウェアのインストールとドメインの両方でJavaへのパスを書き込みます。
Javaへの参照を保持するファイルの検索:
find $MW_HOME -name commBaseEnv.sh
find $MW_HOME -name commEnv.sh
find $MW_HOME -name setNMJavaHome.sh
find $MW_HOME -name nodemanager.properties
find $DOMAIN_HOME -name setDomainEnv.sh
find $DOMAIN_HOME -name setNMJavaHome.sh
find $DOMAIN_HOME -name nodemanager.properties
MW_HOME
はミドルウェアのホームであり、wlserver
ディレクトリの親ディレクトリです。
DOMAIN_HOME
は、WebLogicドメインのホームディレクトリです。
次に、取得した構成ファイルのパスを更新し、Oracle Java RPMによって作成されたJavaへの固定位置ソフトリンクへのパスに置き換えました。
これは、新しいドメインを作成するとき、または新しいバージョンのWebLogicをインストールするときに行う必要があります。
この記事 を使用して、何をする必要があるかを理解しました。