メンテナンス更新ファイルおよび Service Pack のインストール
インストール環境全体を対象とすることが必須でないパッチは、カスタム パッチ プロファイルを使用することにより、特定のドメインまたはサーバのみに対して適用できます。
パッチをダウンロードして適用する際、パッチはデフォルトで対象インストール全体に対して有効になります。インストール全体にパッチが適用された環境で実行するようにコンフィグレーションされているドメインやサーバはすべて、その環境に適用されたパッチを使用して実行されます。しかし、場合によっては、プロダクション環境内の特定のサーバまたはドメインだけを異なるパッチ レベルで実行することが必要になります。そのようなニーズを満たすため、Smart Update では、インストール環境全体を対象とすることが必須でない特定のパッチを、個別のドメイン、サーバ、またはクラスタに対して適用できます。
たとえば、(a) 1 つの BEA ホーム ディレクトリに複数の BEA Products がインストールされている状態で、(b) それらのうち 1 つの製品しか使用しないドメインがある場合、そのようなドメインでは、使用する特定の製品に適用されているパッチだけを参照するようにすることをお勧めします。
インストール全体に対して有効にすることが適切でない 1 つまたは複数のパッチを個別のドメインまたはサーバから参照するには、大まかにいって、次の 3 つの手順からなる作業が必要となります。
図 6-1 では、この手順の詳細を示しています。
図 6-1 個別のドメイン、クラスタ、またはサーバからカスタム パッチ プロファイルを参照する方法
デフォルトでは、デフォルト パッチ プロファイルに含まれるすべてのパッチが、インストール環境全体のすべてのドメインとサーバに対して有効になります。ただし、カスタム パッチ プロファイル内のパッチは、インストール環境内の一部のドメインまたはサーバのみに対して有効にすることができます。「すべてのドメインおよびサーバに対して自動的に有効になるパッチ」で説明するように、システム全体のリソースを置き換えるパッチは、一部のドメインやサーバのみを選択的に対象とすることはできません。しかし、起動スクリプトでロードされることによりシステム内にある同名の既存リソースに取って代わるようなクラスまたはライブラリ ファイルのパッチについては、選択的に対象を指定できます。
これ以降の節では、個別のドメインおよびサーバにパッチを適用するためにカスタム パッチ プロファイルを使用する方法の背景情報について説明します。
コンフィグレーション ウィザードを使用してドメインを作成すると、ドメインに対して次のスクリプトが作成されます。
setDomainEnv
- すべてのサーバで使用される環境変数を含む、ドメイン レベルの環境変数を設定するスクリプトstartWebLogic
- 管理対象サーバではないドメイン内の WebLogic Server インスタンスによって使用される起動スクリプトstartManagedWebLogic
- ドメイン内の管理対象サーバ (クラスタ内にあるものを含む) で使用される起動スクリプト注意 : 詳細については、「すべてのドメインおよびサーバで使用されるクラスパスとライブラリ パスを定義したデフォルト スクリプト」を参照してください。
デフォルトでは、製品インストール スクリプト commEnv
で提供される環境変数 PATCH_CLASSPATH
、WEBLOGIC_EXTENSION_DIRS
、PATCH_LIBPATH
、および PATCH_PATH
の値は、そのインストール環境で実行されるすべてのサーバ インスタンスで使用されます。ただし、ドメイン レベルのスクリプトでこれらの変数の値をオーバライドした場合は、ドメイン レベルのスクリプトで起動された WebLogic Server インスタンスによってのみ新しい値が使用されます。
注意 : 1 つのパッチ変数の定義において、複数のパッチ マニフェスト JAR を参照してはなりません。複数のパッチ マニフェスト JAR ファイルを参照すると、実行時に予期しない動作が発生するおそれがあります。
起動スクリプト内でパッチ パス変数の定義を変更することは、起動スクリプトから起動されるサーバでカスタム パッチ プロファイル内にあるパッチを参照する便利な方法です。たとえば、カスタム パッチ プロファイルに適用されているパッチに含まれる WebLogic システム クラスをサーバから参照する場合は、そのサーバの起動スクリプトに PATCH_CLASSPATH
変数の定義を追加し、その変数をカスタム パッチ プロファイル内のパッチ マニフェスト JAR ファイルのパスに設定するだけで済みます。同様に、カスタム パッチ プロファイルのネイティブ ライブラリ ファイルをサーバまたはドメインから参照するには、そのネイティブ ファイルを含むカスタム パッチ プロファイルにディレクトリへの参照を追加します。この参照を追加するには、適切なサーバまたはドメイン用の起動スクリプトに PATCH_PATH
または PATCH_LIBPATH
変数の定義を追加します。
注意 : 起動スクリプト内にパッチ パス変数の定義を追加する際は、別の起動スクリプトを呼び出すステートメントよりも前に定義を記述する必要があります。たとえば、setDomainEnv
スクリプトにパッチ パス変数の定義を追加する場合、commEnv
スクリプトを呼び出すステートメントよりも前に追加してください。この位置関係を守れば、追加した定義がその後呼び出される別の起動スクリプト内の定義によって上書きされることはありません。
起動スクリプトの変更方法は、Smart Update によって強制または制限されることはありません。ただし、コンフィグレーション ウィザードなどの標準ツールによってデフォルトで作成される起動スクリプトの内容と、ツールによって決定されるデフォルトの格納場所にはそのまま従うことをお勧めします。そうすることで、パッチ プロファイル内のパッチを参照するよう修正が必要な起動スクリプトを見つける機能や、それらのスクリプトに追加する具体的な変更内容の候補を表示する機能が期待どおりに動作し、Smart Update をより便利に利用できます。
図 6-2 は、インストール環境で使用される 2 つのパッチ プロファイルであるデフォルト パッチ プロファイルとカスタム パッチ プロファイルを示しています。この図では以下のことを示しています。
図 6-2 デフォルト パッチ プロファイルとカスタム パッチ プロファイルの使用
次の PATCH_CLASSPATH
変数は、カスタム プロファイル ProductionServer1
内にあるパッチ マニフェスト JAR ファイル weblogic_patch.jar
を参照します。
set PATCH_CLASSPATH=
%BEA_HOME%\patch_weblogic910\profiles\ProductionServer1
\sys_manifest_classpath\weblogic_patch.jar
あるドメイン用の startWebLogic
スクリプトに前述の定義が追加されると、そのスクリプトによってドメインで起動されるサーバ インスタンスは、ProductionServer1
カスタム プロファイルの weblogic_patch.jar
ファイルで参照される WebLogic Server クラスパスにクラス ファイルをロードします。このクラスパスは、commEnv
スクリプト内の次の行が引き続き実行される (PATCH_CLASSPATH
が太字で示されている) ときにロードされます。
set WEBLOGIC_CLASSPATH=
%PATCH_CLASSPATH%;%JAVA_HOME%\lib\tools.jar;
%WL_HOME%\server\lib\weblogic_sp.jar;%WL_HOME%\server\lib\weblogic.jar;
%WL_HOME%\server\lib\webservices.jar
注意 : ProductionServer1
プロファイル内の weblogic_patch.jar
は、デフォルト パッチ ファイルの weblogic_patch.jar
で参照されるパッチ JAR ファイル セットとはまったく異なるパッチ JAR ファイル セットを参照する可能性があります。
あるドメイン内のサーバまたはあるインストール環境内のドメインで、デフォルト パッチ プロファイル内のパッチを引き続き参照する必要がある場合、コンフィグレーション ウィザードで提供されるサーバおよびドメインのデフォルト スクリプトを使用する限り、そのサーバまたはドメイン用の起動スクリプトを変更する必要はありません。ただし、1 つまたは複数のサーバまたはドメインでカスタム パッチ プロファイルを参照する必要がある場合は、変更を加える起動スクリプトの影響が、該当するサーバまたはドメイン以外に及ばないことを確認してください。
起動スクリプトが実行される順序と、パッチ パス変数の特定の定義がパッチ パス変数定義のあるスクリプトで起動されるサーバにどのように影響するかの詳細については、「起動スクリプトの実行順序」を参照してください。
この節では、カスタム パッチ プロファイルの使用法に関する重要な情報について説明します。
ダウンロードした新しいパッチをドメインまたはサーバから参照する際には、できるだけ既存のパッチ プロファイルにパッチを適用してください。特定のドメインまたはサーバから参照するパッチのセットを変更する必要がある場合は、そのパッチを含んでいるカスタム パッチ プロファイルの内容を変更してください。これは、新しいカスタム パッチ プロファイルを作成し、そのプロファイルを参照するように起動スクリプトを変更するよりも望ましいアプローチです。ダウンロードしたパッチごとに新しくプロファイルを作成することは避けてください。作成するプロファイルの数を最小限に抑えることによって、Smart Update および BEA カスタマサポート リポジトリに構築されているパッチ検証および依存関係チェックを効率的に活用することができます。
また、使用するカスタム プロファイルの数を最小限にすると、メンテナンスが必要な起動スクリプトの変更も最小限に抑えることになります。その結果、スクリプトにミスを混入する可能性も減らすことができます。それに加えて、パッチの削除に必要な作業も簡略化され、適切なパッチ プロファイルを更新するだけでよくなります。スクリプトを更新する必要は最小限になります。
BEA では、起動スクリプトの使用法に関しては柔軟性を尊重しています。起動スクリプトに特定の名前や格納場所を使用することは強制していません。ただし、コンフィグレーション ウィザードによってドメイン用に作成されるデフォルトのディレクトリ構造と、提供される起動スクリプトの場所および構造が維持されている場合、カスタム プロファイルの使用時に必要な起動スクリプトを見つけ、変更内容の候補を表示する Smart Update の機能が最も確実に動作します。
一般に、カスタム パッチ プロファイルをドメインまたはサーバから参照するときには、次のガイドラインに留意してください。
setDomainEnv
スクリプトを変更する。そのように実装することで、変更と維持の必要な起動スクリプトの数が最小限になる。通常、カスタム パッチ プロファイルに対して追加または削除できるパッチ セットには制限はありません。ただし、インストール環境全体のリソースに影響するパッチについては、対象インストール環境の既存のパッチ プロファイルすべてに自動的に配置されます。
インストール環境全体のリソースに影響を与えるパッチを、1 つのパッチ プロファイル (デフォルト プロファイルまたはカスタム プロファイル) から削除すると、そのパッチは自動的にすべてのパッチ プロファイルから削除されます。対象インストールに複数のプロファイルがある場合、インストール環境全体のリソースに影響するパッチの置き換えや削除を行おうとすると、Smart Update から警告が表示されます。
カスタム パッチ プロファイルを作成するには、次の手順を実行します。
カスタム プロファイルの詳細については次のトピックを参照してください。
カスタム パッチ プロファイルには次のタイプのパッチが含まれています。
デフォルトでは、インストール全体に対して有効になるパッチがすでに対象インストールに適用されている場合、それらのパッチは新しいパッチ プロファイルを作成するたびに自動的に含まれます。ただし、Smart Update では、最初には何も含まないパッチ プロファイルを作成するオプションも提供しています。
カスタム パッチ プロファイルを作成するために既存のパッチ プロファイルの内容のクローンを作成すると、実際にディスクに複製されるのは既存のパッチ プロファイルのパッチの一部のみです。
置き換えパッチは複製されません。あるパッチが最初に適用されたときシステム リソースが置き換えられた場合、該当するシステム リソースは、そのパッチがカスタム パッチ プロファイルに自動的に複製されるたびに置き換えられることはなく、また、カスタム パッチ プロファイル内のパッチ用の複製エントリによって参照されるパッチ コンテナで作成された複製コピーに置き換えられることもありません。
注意 : ファイルまたは他のアーティファクトの置き換えを含むパッチは、インストール環境全体に自動的に適用されます。
既存のパッチ プロファイル内と同じパッチを含むカスタム パッチ プロファイルを作成する場合、既存のプロファイルのクローンを作成してから、パッチの追加や削除を行うことで必要に応じてカスタマイズできます。この方法は、カスタム パッチ プロファイルを短時間で作成する場合に便利です。
注意 : インストール環境全体のリソースに影響を与えるパッチは、対象インストール環境で作成されるパッチ プロファイルすべてに含まれます。この種のパッチを削除する場合は、対象インストール環境にあるすべてのパッチ プロファイルから削除する必要があり、特定のプロファイルからのみ削除することはできません。1 つのプロファイルのみについてこの種のパッチを削除しようとすると、Smart Update から警告メッセージが表示されます。
カスタム パッチ プロファイルを作成すると、デフォルト パッチ プロファイルに対してパッチの追加や削除を行うのと同様に、カスタム パッチ プロファイルに対してもパッチの追加や削除を行うことができます。
対象インストールにパッチを適用する場合、次の処理が実行されます。
注意 : パッチは対象インストール環境に対して検証され、適用されますが、クラスパスにロードされる予定のクラスまたはライブラリ パスにロードされる予定のネイティブ ライブラリ ファイルを含むパッチは、次の手順を完了するまで有効にはなりません。その手順としては、(a) 必要に応じて適切なドメインまたはサーバの起動スクリプトを変更してパッチを参照し、(b) 適切なドメインまたはサーバを再起動します。
衝突が検出された場合は、[Patch Installation Validation] ダイアログ ボックスにそれらの衝突の概要が表示されます。パッチは衝突が解決するまで適用できません。詳細については、「パッチ間の衝突の解決」を参照してください。
注意 : [Get Patches] タブの [Downloaded Patches] パネルでは、このパッチは引き続きリストされます。
カスタム パッチ プロファイルを削除するには、次の手順を実行します。
カスタム パッチ プロファイルを削除するときには、次のことに留意してください。
作成したカスタム パッチ プロファイルをドメインまたはサーバから参照するには、次の手順を実行します。
注意 : 起動スクリプト内にパッチ パス変数の定義を追加する際は、別の起動スクリプトを呼び出すステートメントよりも前に定義を記述する必要があります。たとえば、setDomainEnv
スクリプトにパッチ パス変数の定義を追加する場合、commEnv
スクリプトを呼び出すステートメントよりも前に追加してください。この位置関係を守れば、追加した定義がその後呼び出される別の起動スクリプト内の定義によって上書きされることはありません。
WebLogic Server 製品ホーム ディレクトリのデフォルト起動スクリプトは、WL_HOME
\common\bin\commEnv
です。このスクリプトには、クラスパスやライブラリ パスにパッチ ファイルを挿入するために使用される次の変数のデフォルト値が入っています。
詳細については、「デフォルト パッチ パス環境変数」を参照してください。
サーバまたはドメインの起動スクリプトにこれらの変数の定義を追加した場合、新しい定義は対応するサーバまたはドメインの commEnv
スクリプトにあるデフォルト定義よりも優先されます。このため、サーバまたはドメイン スクリプトでこれらの変数を定義するときには、新しい定義が適切なサーバ インスタンスに適用されることを必ず確認してください。
また、起動スクリプトが実行される順序にも注意してください。これらの変数に対する 1 つの定義がスクリプトで設定されると、その後に実行されるスクリプト内の定義で上書きされることはありません。詳細については、「起動スクリプトの実行順序」を参照してください。
WL_HOME
\common\bin\commEnv
スクリプトを起動しない環境でカスタム スクリプトを使用する場合、定義した環境変数が Set WEBLOGIC_CLASSPATH
や Set PATH
などのステートメントに適切に挿入されるように、使用している環境用のクラスパスとライブラリ パスを設定するスクリプト内のステートメントを変更する必要もあります。
たとえば、カスタム パッチ プロファイルのパッチ JAR がクラスパス内に後で現れる同じ名前のクラスを無効にするように WebLogic システム クラスパスを設定する場合、次に太字で示されている PATCH_CLASSPATH
変数を追加します。
set WEBLOGIC_CLASSPATH=
%PATCH_CLASSPATH%;
%JAVA_HOME%\lib\tools.jar;
%WL_HOME%\server\lib\weblogic_sp.jar;%WL_HOME%\server\lib\weblogic.jar;%WL_HOME%\server\lib\webservices.jar
パッチ プロファイルをカスタム スクリプトから参照する方法の詳細については、「すべてのドメインに対するカスタム スクリプトでのパッチの参照」を参照してください。
ドメインでノード マネージャを使用し、ドメインで使用するパッチすべてがデフォルト パッチ プロファイルに適用される場合、ノード マネージャで起動されるサーバは、自動的にそれらのパッチを使用して実行されます。ただし、ノード マネージャを使用するようにコンフィグレーションされたドメインでカスタム パッチ プロファイルを使用する場合、この節で説明する追加の手順を実行する必要があります。
ドメイン クラスタ内のすべての管理対象サーバが起動時にカスタム パッチ プロファイル内のパッチを必ず参照するようにするには、次の手順を実行します。
nodemanager.properties
ファイルを編集する必要があります。そのような nodemanager.properties
ファイルを開き、次の変更を行う必要があります。StartScriptName
プロパティが、ドメイン内のすべてのサーバ インスタンスで使用される WebLogic Server 起動スクリプトに設定されることを確認します。デフォルトの起動スクリプトはオペレーティング システムごとに次のようになります。nodemanager.properties
ファイルを変更する詳細については、『サーバの起動と停止の管理』の「ノード マネージャを使用したサーバの制御」を参照してください。
setDomainEnv
スクリプト (Windows の場合は setDomainEnv.cmd
、UNIX の場合は setDomainEnv.sh
) を開き、表 6-1 に示すパッチ パス環境変数を 1 つまたは複数定義します。BEA ホーム ディレクトリのインストール レベル パッチ ディレクトリ (BEA_HOME
\patch_weblogic910
) に含まれる、表 6-1 の各ファイルまたはディレクトリで、対応するパッチ パス変数用の setDomainEnv
スクリプトに定義を追加することにより、パッチ パス変数でそのファイルまたはディレクトリが参照されるようにします。表 6-1 で、custom-profile
はインストール レベル パッチ ディレクトリに作成されたカスタム パッチ プロファイルの名前を表します。
たとえば、使用しているマシンで BEA_HOME
\patch_weblogic910\profiles\
custom-profile
\sys_manifest_classpath\weblogic_patch.jar
という名前の JAR ファイルをホストしている場合、そのファイルを参照する setDomainEnv
スクリプトに PATCH_CLASSPATH
変数の定義を追加します。