A Oracle Fusion Middleware製品のインストールおよび構成後のJDKの更新

使用するマシンにJDKバージョンjdk1.8.0_121がインストールされているとします。Oracle Fusion Middleware製品をインストールおよび構成する場合、構成ウィザード(config.sh|exe)や、OPatch、RCUなどのユーティリティはデフォルトでJDK (たとえば、jdk1.8.0_121)を指し示しています。後に、セキュリティの強化およびバグの修正が含まれる新しいバージョン、仮にjdk1.8.0_131とするJDKがOracleからリリースされることになります。12c (12.2.1.3.0)以降では、既存のJDKを新しいバージョンにアップグレード可能であり、すべての製品スタックが新しいバージョンのJDKを指し示すようにできます。

複数のバージョンのJDKを保持し、必要に応じてバージョンを切り替えることができます。

Oracle Fusion Middleware製品のインストール後におけるJDKの場所の更新について

Oracleホームおよびドメイン・ホームにあるRCUや構成ウィザードなどのバイナリとその他のメタデータおよびユーティリティ・スクリプトでは、ソフトウェアのインストール時に使用されたJDKバージョンが使用され、同じバージョンのJDKが継続して参照されます。JDKパスは、JAVA_HOMEと呼ばれる変数に格納され、ORACLE_HOME/ouiディレクトリの.globalEnv.propertiesファイルの中央に置かれています。

config.sh|cmd、launch.shまたはopatchなどのユーティリティ・スクリプトは、ORACLE_HOMEにあり、それらは起動されると、.globalEnv.propertiesファイル内のJAVA_HOME変数を参照します。これらのスクリプトおよびユーティリティを新しいバージョンのJDKに指定するには、「既存のOracleホームのJDKの場所の更新」に記載された手順に従い、.globalEnv.propertiesファイル内のJAVA_HOME変数を更新する必要があります。

ドメイン・ホーム・ディレクトリ内のスクリプトおよびファイルを新しいバージョンのJDKに指定するには、次のいずれかの方法に従います。
  • 構成ウィザードの実行中に、新しいJDKへのパスを「ドメイン・モードおよびJDK」画面で指定します。

    たとえば、Oracle Fusion Middleware InfrastructureをJDKバージョン8u121でインストールしたとします。WebLogicドメインを構成アシスタントで構成する際に、構成ウィザードの「ドメイン・モードおよびJDK」画面で新しいJDKへのパスを選択できます。たとえば、/scratch/jdk/jdk1.8.0_131です。

  • grepコマンド(UNIX)またはfindstrコマンド(Windows)を使用し、手動でJDKを参照するファイルを特定して、各参照を更新します。「既存のドメイン・ホームのJDKの場所の更新」を参照してください。

ノート:

新しいバージョンのJDKをファイルをオーバーライドして既存のJDKとして同じ場所にインストールする場合、なにもする必要ありません。

統合環境でOracle Identity Managerをアップグレードするときに、OPSS処理エラーが発生することがあります。次の例外は、reconfig.shコマンドを実行して、Oracle Identity Managerドメインを再構成するときに表示されます。

SEVERE [93] com.oracle.cie.domain.progress.AbstractProgressGenerator - Error occurred in 
phase {OPSS Processing} execution. 
java.lang.IllegalStateException: SecurityContext: Domain Name: IAMGovernanceDomain 
JDBC URL: opss-audit-DBDS:jdbc:oracle:thin:@//<hostname>:<port>/<service>  
JDBC URL: opss-data-source:jdbc:oracle:thin:@//<hostname>:<port>/<service>  
Caused by: java.security.InvalidKeyException: Illegal key size         
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039)         
at javax.crypto.Cipher.implInit(Cipher.java:805)         
at javax.crypto.Cipher.chooseProvider(Cipher.java:864)         
at javax.crypto.Cipher.init(Cipher.java:1396)         
at javax.crypto.Cipher.init(Cipher.java:1327)
この問題を解決するには:
  1. 次の場所からJava Cryptography Extension (JCE)強度無制限の管轄ポリシー・ファイルをインストールします。Java Cryptography Extension (JCE)強度無制限の管轄ポリシー・ファイル8ダウンロード

  2. local_policy.jarおよびUS_export_policy.jarファイルをJAVA_HOME/jre/lib/security/の場所にコピーします。ファイルがコピー先のフォルダにすでに存在する場合は、それを上書きします。

既存のOracleホームにおけるJDKの場所の更新

getProperty.sh|cmdスクリプトを使用して、.globalEnv.propertiesファイルからJAVA_HOMEなどの変数の値が表示されます。setProperty.sh|cmdスクリプトは、.globalEnv.propertiesファイルの新旧のJDKの場所を含むOLD_JAVA_HOMEまたはJAVA_HOMEなどの変数の値を設定するために使用されます。

getProperty.sh|cmdおよびsetProperty.sh|cmdスクリプトは次の場所にあります。

(UNIX) ORACLE_HOME/oui/bin
(Windows) ORACLE_HOME\oui\bin
ここで、ORACLE_HOMEは、jdk1.8.0_121などのJDKの現行バージョンを使用した製品を含むディレクトリです。

.globalEnv.propertiesファイル内のJDKの場所を更新するには:
  1. getProperty.sh|cmdスクリプトを使用して、現在のJDKのパスをJAVA_HOME変数から表示します。たとえば:

    (UNIX) ORACLE_HOME/oui/bin/getProperty.sh JAVA_HOME
    (Windows)  ORACLE_HOME\oui\bin\getProperty.cmd JAVA_HOME
    echo JAVA_HOME
    ここで、JAVA_HOMEは、JDKの場所を含む.globalEnv.プロパティ・ファイル内の変数です。

  2. 現在のJDKからOLD_JAVA_HOMEなどの別の変数へのパスを.globalEnv.propertiesファイルにバックアップするには、次のコマンドを入力します。

    (UNIX) ORACLE_HOME/oui/bin/setProperty.sh -name OLD_JAVA_HOME -valuespecify_the_path_of_current_JDK
    (Windows) ORACLE_HOME\oui\bin\setProperty.cmd -name OLD_JAVA_HOME -value specify_the_path_of_current_JDK

    このコマンドにより、OLD_JAVA_HOMEと呼ばれる新しい変数が.globalEnv.propertiesファイルに、指定した値で作成されます。
  3. .globalEnv.propertiesファイルのJAVA_HOME変数にJDKの新しい場所を設定するには、次のコマンドを入力します。

    (UNIX) ORACLE_HOME/oui/bin/setProperty.sh -name JAVA_HOME -value specify_the_location_of_new_JDK
    (Windows) ORACLE_HOME\oui\bin\setProperty.cmd -name JAVA_HOME -value specify_the_location_of_new_JDK

    このコマンドを実行すると、.globalEnv.propertiesファイルのJAVA_HOME変数にjdk1.8.0_131のような新しいJDKのパスが含まれます。

既存のドメイン・ホームにおけるJDKの場所の更新

現在のJDK (たとえばjdk1.8.0_121)への参照を手動で検索し、これらのインスタンスを新しいJDKのロケーションに置き換える必要があります。

grepコマンド(UNIX)またはfindstrコマンド(Windows)を使用し、jdkに関係する参照を検索します。

次の3ファイルのJDKの場所の更新が必要になる場合があります。

(UNIX) DOMAIN_HOME/bin/setNMJavaHome.sh
(Windows) DOMAIN_HOME\bin\setNMJavaHome.cmd

(UNIX) DOMAIN_HOME/nodemanager/nodemanager.properties
(Windows) DOMAIN_HOME\nodemanager\nodemanager.properties

(UNIX) DOMAIN_HOME/bin/setDomainEnv.sh
(Windows) DOMAIN_HOME\bin\setDomainEnv.cmd

ノート:

  • setNMJavaHome.sh|cmdファイルでのノード・マネージャに対するJAVA_HOMEの値を変更した場合は、ノード・マネージャを使用して起動したOracle BIシステム・コンポーネントで、setNMJavaHome.sh|cmdファイルで指定した新しいJAVA_HOMEが自動的に使用されます。

  • setDomainEnv.sh|cmdファイルの更新時には注意してください。更新が適切でないと、ドメイン上で実行されたスケールアウトやアップグレード、ドメインの拡張などの手動の操作が元に戻される可能性があります。