メンテナンス更新ファイルおよび Service Pack のインストール
システム パスへのパッチの挿入
この節では、以下のトピックを取り上げます。
概要
クラスパス (WebLogic システム クラスパスや、WebLogic Server 上にデプロイされたアプリケーションのクラスパスなど) 内にロードされるクラスを含んだパッチをダウンロードして適用した後は、それらのクラスを適切なクラスパスに対して正しく挿入したことを必ず確認してください。挿入方法が不適切な場合はパッチが有効になりません。同様に、ライブラリ パス内に挿入されるライブラリ ファイルを含んだパッチについては、それらを使用するサーバ インスタンスやアプリケーションにおいて、ライブラリ ファイルを示すパスが正しく処理されることを必ず確認してください。
この節では、ドメインに適用したパッチを確実に有効にするために必要な、2 つの基本的な作業について説明します。
システム パスに対するパッチ追加の確認
次の条件に該当する場合は、起動スクリプトに変更を加えなくても、クラスパスおよびライブラリ パスに対するパッチがドメイン サーバの起動時に正しく取り込まれると考えられます。
実際の WebLogic ドメイン用にコンフィグレーションした BEA Products サーバ インスタンスを起動するためにコンフィグレーション ウィザードで生成したデフォルトのスクリプトを、該当する WebLogic ドメインで使用している
パッチの適用範囲を特定のドメインやサーバ インスタンスに限定する必要がない
それ以外の場合は、BEA Products サーバの起動時にパッチが適切なクラスパスやライブラリ パスに挿入されるようにするために必要な作業があります。追加の作業手順が必要となるのは、パッチを適用した対象 BEA Products の使用環境に次のいずれかが該当する場合です。
WebLogic ドメイン内のサーバを起動する際にカスタム スクリプトを使用しており、そのカスタム スクリプトでは、次に示すデフォルトの commEnv
スクリプトを呼び出していない
Windows :
WL_HOME
\common\bin\commEnv.cmd
UNIX :
WL_HOME
/common/bin/commEnv.sh
特定の BEA Products インストールの上で動作するすべてのドメインおよびサーバ全体を対象にするのではなく、特定のドメインまたはサーバのみに適用対象を限定することが必要なパッチまたはパッチ セットがある
起動スクリプトの修正
カスタム起動スクリプトを使用しているか、パッチの適用対象を特定のドメインまたはサーバに限定する必要がある場合は、次のとおり起動スクリプトを変更する必要があります。
特定の BEA Products インストールの上で動作するすべてのサーバ インスタンスに対するシステム クラスパスまたはライブラリ パスにパッチを挿入する場合であっても、カスタム起動スクリプトを使用していれば、デフォルト パッチ プロファイルへの参照をそのスクリプトに追加する必要があります。
パッチの適用範囲を特定のドメインまたはサーバ インスタンスに限定する必要がある場合は、次の 2 つの作業を実行する必要があります。
特定の BEA Products インストールの上で動作するドメインまたはサーバに対するパッチの適用先として、カスタム パッチ プロファイルを作成する。
該当するドメインまたはサーバの起動スクリプト内に、作成したカスタム パッチ プロファイルへの参照を追加する。
クラスパスやライブラリ パスに適用したパッチが正しく使用されるように起動スクリプトを変更する方法については、以下の節を参照してください。
「Smart Update における適用済みパッチの管理方法」には、次の事項に関する説明があります。
システム クラスパスまたはライブラリ パスに動的にロードされることが必要なパッチ ファイルと、インストール全体に対して自動的に有効になるパッチとの区別
パッチ適用時に Smart Update によってパッチ ファイルの内容が配置されるマシン上の場所
「起動スクリプトに対するパッチの場所の指定について」には、コンフィグレーション ウィザードで作成されるデフォルト スクリプトに組み込まれている、クラスやライブラリのパッチを自動的にシステム クラスパスやライブラリ パスに挿入する仕組みに関する説明があります。クラスやライブラリのパッチを正しく参照するようカスタム スクリプトに変更を加える必要がある場合は、この処理を理解しておくことが重要です。変更が必要になるのは、(a) 使用環境内でデフォルト スクリプトを使用していない場合、または (b) パッチの適用対象を特定のドメインまたはサーバ起動スクリプトに限定する必要がある場合です。
「起動スクリプト エディタの使用」には、起動スクリプトの変更作業を簡略化できる、Smart Update の起動スクリプト エディタの使用方法に関する説明があります。
Smart Update における適用済みパッチの管理方法
製品インストールに対するパッチ適用の際に Smart Update で使用される方法は一律ではなく、パッチの種類および内容に応じて異なります。パッチには、場合によって次の内容が収められています。
製品インストール内のリソースに対する置き換え
クラス ファイル (必要に応じてクラスパスなどのクラスローダ メカニズムで使用される)
ライブラリ ファイル (必要に応じてライブラリ パスに含められる)
ライブラリ ファイルを含んだパッチは、対象インストール内にすでに存在するファイルを置き換えるものとは限りません。そのため、起動スクリプトによって明示的にロードする必要があります。
パッチが BEA ホーム ディレクトリに対して適用される方法と、マシン上でパッチが Smart Update により管理される方法については、以下の節を参照してください。起動スクリプトに変更を加えることが必要かどうかを判断し、必要な場合にその変更方法を認識するためには、これらを理解しておく必要があります。
起動スクリプトによる参照が必要とされるパッチ
起動スクリプトによってロードされるクラスまたはライブラリ ファイルを含んだパッチの場合、それらのクラスやファイルは Smart Update によって、マシン上にあるインストールレベルのパッチ ディレクトリに一元的に格納されます。これにより、クラスやライブラリ ファイルは、それらを使用する WebLogic Server インスタンスの起動時にロードできる状態になります。
このカテゴリに属するパッチに含まれる内容の例を次に示します。
WebLogic Server システム クラスパスにロードされるクラス ファイル
WebLogic Server 上にデプロイされたアプリケーションのクラスパスにロードされるクラス ファイル
WebLogic Server ライブラリ パスにロードされるライブラリ ファイル
注意 : パッチの検証および対象インストールへの適用はいつでも実行できますが、すぐに有効にならないパッチもあります。(a) クラスパスにロードされるクラス、または (b) ライブラリ パスにロードされるネイティブ ライブラリ ファイルのいずれかが含まれるパッチは、次の手順を実行するまで有効になりません。
(1) 必要に応じて、適切なドメインまたはサーバ起動スクリプトに変更を加え、パッチが参照されるようにする。
(2) 該当するドメインまたはサーバを再起動する。
すべてのドメインおよびサーバに対して自動的に有効になるパッチ
製品インストールに含まれる既存のリソースを置き換えるパッチは、適用と同時に、そのインストール全体に対して自動的に有効になります。起動スクリプトによって有効化されるのではありません。したがって、システム リソースの置き換えを含んだパッチの場合、起動スクリプトに変更を加える必要はありません。
置き換えリソースを含んだパッチの一般的な内容の例を次に示します。
Web サーバ プラグインのリソース
ソケット マルチプレクサ
ダイナミック リンク ライブラリ
注意 : 置き換えられた以前のファイルは、Smart Update では、インストールレベルのパッチ ディレクトリにある backup
サブディレクトリに保管されます。置き換えを含んだパッチを後で削除すると、元のリソースが backup
から復元されます (backup
の詳細については、表 5-1 を参照)。ただし、最大限の安全性を確保するために、置き換えを含んだパッチを適用する前には、置き換え予定のシステム リソースすべてについて別途バックアップを作成することをお勧めします。
システム上での Smart Update によるパッチ ファイル格納方法
BEA カスタマサポートからパッチまたはパッチ セットをダウンロードすると、パッチ ダウンロード ディレクトリにパッチ コンテナが置かれます。パッチ コンテナには次の内容が収められています。
パッチまたはパッチ セット
1 つのパッチには複数のファイルが含まれている場合があります。含まれるファイルは次のようなものです。
クラスの置き換え用として提供される同名のクラス (サーバ起動時に WebLogic システム クラスパスに挿入される)
ネイティブ ライブラリ ファイル (システム パスに挿入される)
コンフィグレーション ファイル
パッチ セットとは、複数の独立したパッチからなる集合です。各パッチにはそれぞれ固有のファイル セットが含まれます。
そのパッチ コンテナに含まれる各パッチに関するメタデータ
メタデータは、対象の製品インストールに適用されているすべてのパッチに対して各パッチを検証するために Smart Update で使用される情報です (パッチを適用すると、メタデータは、Smart Update によって管理されるそのマシン上のディレクトリにあるパッチ レジストリに置かれます。詳細については、「インストールレベルのパッチ ディレクトリの構造」を参照してください)。
パッチ プロファイルに対してパッチが適用されると、そのパッチに含まれる個々のファイルは次のように処理されます。
システム リソース (WebLogic Server プラグイン モジュールなど) に対する置き換えを含んだパッチの場合、該当する既存リソースが、その置き換えによって自動的に更新されます。
パッチ JAR ファイル (対象インストール内にある同名のクラスに対する更新ファイルとしてクラスパスにロードされるクラスのセット) を含んだパッチの場合、次の処理が実行されます。
パッチ マニフェスト JAR (パッチ JAR ファイル内にあるクラスへのポインタを含んだファイル) が、Smart Update により作成される。現在のプロファイルに対するパッチ マニフェスト JAR がすでに存在する場合は、既存のパッチ マニフェスト JAR が更新され、新しいパッチ JAR ファイル内にあるクラスへのポインタが追加される。パッチ マニフェスト JAR ファイルについては、「パッチ マニフェスト JAR ファイル」の説明を参照。
環境変数 PATH
または LIBPATH
を介してシステム ライブラリ パスにロードされるネイティブ ライブラリ ファイルを含んだパッチの場合、次の処理が実行されます。
現在選択されているパッチ プロファイル専用の native
というサブディレクトリの有無がチェックされる。見つからない場合は、このサブディレクトリが Smart Update によって作成される。native
サブディレクトリについては、表 5-1 の説明を参照。
パッチに含まれるネイティブ ライブラリ ファイルが、native
サブディレクトリにコピーされる。
インストールレベルのパッチ ディレクトリの構造
BEA Products ソフトウェアをインストールし、Smart Update を実行すると、パッチ ディレクトリ BEA_HOME
\patch_weblogic910
が作成されます。このディレクトリの構造を 図 5-1 に示し、ディレクトリの内容を 表 5-1 で説明します。
図 5-1 インストールレベルのパッチ ディレクトリ
表 5-1 インストールレベルのパッチ ディレクトリ内にあるディレクトリおよびファイル
ディレクトリ
|
内容
|
backup
|
パッチ バックアップ マニフェスト (マシン上に以前のパッチ レベルを復元するために必要なファイルおよび情報を含む)。
このディレクトリは、製品インストール ディレクトリ内に配置されるファイルを含んだ、インストール全体を対象とするパッチを適用すると作成される。
|
patch_jars
|
パッチ JAR ファイル (マシン上の該当する BEA Products インストールに対して適用済みの各種パッチに収められていたクラス JAR ファイルを含む)。1 つのパッチ JAR ファイルには、次のうち 1 つまたは複数の内容が含まれる。
注意 : システム リソースに対する置き換えを含んだパッチ JAR ファイルは、このディレクトリ (patch_jars ) には格納されない。
注意 : 追加するパッチ JAR ファイルを格納できる十分なディスク スペースをマシン上に確保しておくことが望ましい。JAR ファイルを含んだパッチのサイズに関する詳細については、「パッチ情報の表示」を参照。
|
profiles
|
特定の製品インストールに対して作成されるすべてのパッチ プロファイルが格納されるディレクトリ。次のディレクトリを含む。
profiles\default - デフォルト パッチ プロファイル用のディレクトリ。パッチを適用すると、場合によって次のうち 1 つまたは複数のサブディレクトリが作成される。
profiles\ custom-profile-name - カスタム パッチ プロファイル用のディレクトリ。カスタム パッチ プロファイルの名前がディレクトリ名となる。カスタム パッチ プロファイルが 1 つ作成されるたびに、そのプロファイルの名前を持つディレクトリが自動的に作成される。カスタム パッチ プロファイルの各ディレクトリには、次のうち 1 つまたは複数のサブディレクトリが含まれる。
|
registry
|
次の事項に関する情報が含まれる。
この情報は、パッチ検証などの処理を実行するために Smart Update 内部で使用される。
|
パッチ マニフェスト JAR ファイル
同名の既存クラスに取って代わるためにクラスパスに挿入されるクラスを含んだパッチは、パッチ マニフェスト JAR によって参照されます。そのようなクラスを含んだパッチをパッチ プロファイルに適用すると、対象プロファイルのパッチ マニフェスト JAR ファイルが Smart Update によって自動的に更新され、新しいパッチ内にあるクラスを参照するようになります。
たとえば、パッチに CR99004.jar
という JAR ファイルが含まれ、この JAR ファイルには WebLogic システムレベル クラスが収められているとします。このパッチをデフォルト パッチ プロファイルに適用すると、Smart Update により次の処理が実行されます。
CR99004.jar
が、BEA_HOME
\patch_weblogic910\patch_jars
ディレクトリに追加される。
次のファイルが (まだ存在しなければ) 作成される。
BEA_HOME
\patch_weblogic910\profiles\default\sys_manifest_classpath\weblogic_patch.jar
weblogic_patch.jar
内に、CR99004.jar
内の WebLogic システム クラスを指す次の参照が追加される。
Class-Path: C:\bea\patch_weblogic910\patch_jars\CR99004.jar
BEA_HOME
\patch_weblogic910\registry
ディレクトリ内のパッチ レジストリ情報が更新される。
ネイティブ ライブラリ ファイル
該当する WebLogic Server インスタンスの起動時にシステム ライブラリ パスにロードされるネイティブ ライブラリ ファイルを含んだパッチの場合は、適用先パッチ プロファイルの native
サブディレクトリにそれらのライブラリ ファイルが格納されます。
たとえば、サーバ起動時にシステム ライブラリ パスにロードされる libmuxer.so
というファイルがパッチに含まれているとします。このパッチをデフォルト パッチ プロファイルに適用すると、Smart Update により次の処理が実行されます。
次のディレクトリが (まだ存在しなければ) 作成される。
BEA_HOME
\patch_weblogic910\profiles\default\native
次のディレクトリに libmuxer.so
が格納される。
BEA_HOME
\patch_weblogic910\profiles\default\native
次のディレクトリ内で管理されているパッチ レジストリ情報が更新される。
BEA_HOME
\patch_weblogic910\registry
起動スクリプトに対するパッチの場所の指定について
WebLogic Server インスタンスの起動時、パッチが確実にクラスパスまたはシステム ライブラリ パスにロードされるようにするために、該当するサーバの起動スクリプトにパッチへのポインタを追加することが必要な場合があります。以下の節では、Smart Update の動作と、場合によって起動スクリプトに加える必要がある変更内容について説明します。
すべてのドメインおよびサーバで使用されるクラスパスとライブラリ パスを定義したデフォルト スクリプト
WebLogic Server インスタンスが起動する際には、いくつかの起動スクリプトが実行されます。そうしたスクリプトで実行される処理の 1 つに、システムで使用されるクラスパスとライブラリ パス (WebLogic システム クラスパスなど) の定義があります。デフォルトでは、すべての WebLogic Server インスタンスで、次のいずれかのスクリプト内で設定されるクラスパスおよびライブラリ パス定義が使用されます。
Windows :
WL_HOME
\common\bin\commEnv.cmd
UNIX :
WL_HOME
/common/bin/commEnv.sh
デフォルト パッチ パス環境変数
commEnv
スクリプトには、表 5-2 で説明する環境変数のデフォルトの定義が含まれています。デフォルトでは、それらの「パッチ パス変数」はすべての WebLogic Server インスタンスが起動する際に使用され、また、クラスパスとライブラリ パスに挿入されるパッチを指しています。
表 5-2 commEnv スクリプト内で定義されるパッチ パス変数
変数
|
設定される参照先
|
PATCH_CLASSPATH
|
デフォルト パッチ プロファイル用のパッチ マニフェスト JAR ファイル (weblogic_patch.jar ) - この JAR ファイルには、WebLogic システム クラスパスにロードされるパッチ JAR ファイル内にあるクラスへの参照が含まれる。たとえば、Windows の場合、commEnv スクリプトのデフォルトの定義は次のとおり。
if "%PATCH_CLASSPATH%" == "" set PATCH_CLASSPATH= %BEA_HOME%\patch_weblogic910\profiles\default \sys_manifest_classpath\weblogic_patch.jar
注意 : BEA カスタマサポートから提供されるパッチの多くは、PATCH_CLASSPATH で参照される WebLogic システム クラスパス パッチである。
|
WEBLOGIC_EXTENSION_DIRS
|
デフォルト パッチ プロファイル用の WebLogic 拡張ディレクトリ パッチ マニフェスト JAR ファイル (weblogic_ext_patch.jar ) - このファイルには、WebLogic Server 上にデプロイされたアプリケーションのクラスパスにロードされるパッチ JAR ファイル内にあるクラスへの参照が含まれる。たとえば、Windows の場合、commEnv スクリプトのデフォルトの定義は次のとおり。
if "%WEBLOGIC_EXTENSION_DIRS%" == "" set WEBLOGIC_EXTENSION_DIRS= %BEA_HOME%\patch_weblogic901\profiles\default \sysext_manifest_classpath
注意 : この変数は、WebLogic Server 上にデプロイされたアプリケーションのクラスパスにロードされるパッチ JAR ファイル内にあるクラスを必要とする BEA Products のために予約されている。デプロイされたアプリケーションに対するパッチ用のこのメカニズムは、現在、WebLogic Server 9.1 では使用されていない。
|
PATCH_LIBPATH (UNIX の場合のみ)
|
デフォルト パッチ プロファイル用のインストールレベル ディレクトリにある native フォルダ - このフォルダには、LIBPATH 環境変数を介してシステム ライブラリ パスにロードされるファイルが格納される。たとえば、UNIX の場合、commEnv スクリプトのデフォルトの定義は次のとおり。
if [ "${PATCH_LIBPATH}" = "" ]; then PATCH_LIBPATH=${BEA_HOME}/patch_weblogic901/profiles /default/native fi
|
PATCH_PATH (Windows の場合のみ)
|
デフォルト パッチ プロファイル用のインストールレベル パッチ ディレクトリにある native フォルダ - このフォルダには、PATH 環境変数を介してシステム パスにロードされるファイルが格納される。たとえば、Windows の場合、commEnv スクリプトのデフォルトの定義は次のとおり。
if "%PATCH_PATH%" == "" set PATCH_PATH=%BEA_HOME%\patch_weblogic910\profiles \default\native
|
パッチ パス変数がクラスパスおよびライブラリ パスに挿入される際の規則
commEnv
スクリプト内では、表 5-2 で説明するパッチ パス変数が、システム クラスパス、ライブラリ パスなどを設定するステートメントで必要に応じて挿入されます。たとえば、commEnv
スクリプト内にある次のデフォルト ステートメントでは、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
サーバの起動時に commEnv
スクリプトが実行されると、これらのパッチ パス変数で参照されているクラスおよびライブラリ ファイルがロードされ、classpath ステートメントまたは path ステートメント内でそれ以降に参照されている同名のクラスまたはライブラリ ファイルに取って代わります。
図 5-2 は、PATCH_CLASSPATH
環境変数を介して参照され、commEnv
スクリプトによって WebLogic システム クラスパスにロードされるクラスを含んだパッチ JAR ファイルを示しています。
図 5-2 PATCH_CLASSPATH 変数によって参照されるパッチ JAR ファイルのクラス
サーバ起動スクリプト内でのパッチ パス変数の設定について
「すべてのドメインおよびサーバで使用されるクラスパスとライブラリ パスを定義したデフォルト スクリプト」で説明するパッチ パス変数が、WebLogic Server インスタンスの起動に先立って実行されるスクリプト (startWebLogic
、setDomainEnv
など) の中で定義されている場合、該当するサーバ インスタンスに対してはそうした既存の定義内容が使用されます。commEnv
内の変数定義によって上書きされることはありません。
たとえば、MyTestDomain ドメインの setDomainEnv
スクリプトに、MyTestDomain 内のすべての WebLogic Server インスタンスで使用する PATCH_CLASSPATH
変数の定義が含まれている場合、該当するサーバ インスタンスに対してはその定義内容が使用され、commEnv
スクリプト内の PATCH_CLASSPATH
よりも優先されます。したがって、起動スクリプト内にパッチ パス変数の定義を追加する際は、別の起動スクリプトを呼び出すステートメントよりも前に定義を記述する必要があります。
個々の WebLogic Server インスタンスそれぞれについて、必要なすべてのパッチを使用して起動が正しく行われるようにしてください。カスタマイズされた使用環境において、いずれかのパッチ パス変数を定義して WebLogic Server インスタンスを起動することが要求される場合は、次の事項を理解しておく必要があります。
起動スクリプトの実行順序
使用環境内にある各種の起動スクリプトが実行される順序と、起動スクリプトが呼び出される場所について理解していれば、どのスクリプトに変更を加える必要があるかを判断でき、対象サーバ インスタンスすべてに対する必要なパッチ パス変数すべてについて、確実に正しい値が代入されるようにすることができます。
BEA から提供されているデフォルト スクリプトで行われる処理は次のとおりです。
WebLogic Server インスタンスの起動
次の対象によって使用される変数
各ドメイン
BEA Products インストール
それらのスクリプトは、各スクリプトの内容に応じて決まる特定の順序に従って実行されます。
次の点について、表 5-3 で説明します。
サーバ、ドメイン、および BEA Products インストールに対して作成される各種のデフォルト スクリプト
各スクリプトの機能
スクリプトが実行される順序
表 5-3 BEA Products インストール内の各種デフォルト スクリプト
スクリプト
|
機能
|
実行のタイミング
|
ドメインの bin ディレクトリ内にあるスクリプト :
Windows :
startManagedWebLogic.cmd
UNIX :
startManagedWebLogic.sh
|
ドメイン内の管理対象サーバを起動する。スクリプト内で定義されるパッチ パス変数は、当該スクリプトから起動されるすべての管理対象サーバで使用される。
|
コンフィグレーションに管理対象サーバが含まれるドメイン (クラスタなど) では、このスクリプトはデフォルトで最初に実行される。
このスクリプトからは、startWebLogic スクリプトが呼び出される。
|
ドメインの bin ディレクトリ内にあるスクリプト :
Windows :
startWebLogic.cmd
UNIX :
startWebLogic.sh
|
ドメイン内の WebLogic Server インスタンスを起動する。スクリプト内で定義されるパッチ パス変数は、ドメイン サーバすべて (すでに起動しているものを除く) に対して有効になる。
たとえば、前もって実行された startManagedWebLogic スクリプトに管理対象サーバ用のパッチ パス定義が含まれている場合、startWebLogic スクリプト内のパッチ パス変数定義は、startManagedWebLogic スクリプトで起動される管理対象サーバに対しては有効にならない。
|
コンフィグレーションに管理対象サーバが含まれるドメインでは、このスクリプトはデフォルトで startManagedWebLogic スクリプトから呼び出される。
startWebLogic スクリプトからは、setDomainEnv スクリプトが呼び出される。
|
ドメインの bin ディレクトリ内にあるスクリプト :
Windows :
setDomainEnv.cmd
UNIX :
setDomainEnv.sh
|
WebLogic Server インスタンスを起動および実行するための、ドメイン全体の環境を設定する。スクリプト内で定義されるパッチ パス変数は、ドメイン サーバすべて (startManagedWebLogic 、startWebLogic などサーバ固有のスクリプトから起動されるものを除く) に対して有効になる。
|
このスクリプトは、デフォルトで startWebLogic スクリプトから呼び出される。
setDomainEnv スクリプトには、commEnv スクリプト (そのドメインについてサーバ起動スクリプトや setDomainEnv スクリプトで定義されない設定を定義) の呼び出しが含まれている。
|
インストール環境の WL_HOME \common\bin ディレクトリ内にあるスクリプト :
Windows :
commEnv.cmd
UNIX :
commEnv.sh
|
WebLogic Server インスタンスを起動および実行するための、ドメイン全体の環境を設定する。スクリプト内で定義されるパッチ パス変数は、ドメイン サーバすべて (startManagedWebLogic 、startWebLogic などサーバ固有のスクリプトから起動されるものを除く) に対して有効になる。
|
デフォルトでは、当該インストール上で起動および実行されるサーバ用に設定を定義するために呼び出されるスクリプトとしてはこれが最後。
|
デフォルト スクリプト内のパッチ パス変数定義用プレースホルダ
コンフィグレーション ウィザードを使用してドメインを作成すると、次に説明するとおり、パッチ パス変数定義用のプレースホルダを含んだスクリプトがそのドメイン用に作成されます。
setDomainEnv
スクリプトには、次に示すコード行が含まれています (デフォルトではコメントアウト)。
@REM このドメインのデフォルトのパッチ クラスパス、ライブラリ パス
およびパスを上書きするには、
@REM 次のコード行のコメントを解除し、環境変数に対して有効な値を
指定してください
@REM set PATCH_CLASSPATH=[myPatchClasspath] (windows)
@REM set PATCH_LIBPATH=[myPatchLibpath] (windows)
@REM set PATCH_PATH=[myPatchPath] (windows)
@REM PATCH_CLASSPATH=[myPatchClasspath] (unix)
@REM PATCH_LIBPATH=[myPatchLibpath] (unix)
@REM PATCH_PATH=[myPatchPath] (unix)
これらのコメント行は、パッチ パス変数の定義内容を記述する場所がわかりやすいように、コンフィグレーション ウィザードによって用意されるものです。たとえば、MyProfile というカスタム プロファイル内のパッチ JAR ファイルをドメインで参照する場合は、次のように PATCH_CLASSPATH
変数のプレースホルダのコメントを解除し、値を定義します。
PATCH_CLASSPATH=%BEA_HOME%\patch_weblogic910\profiles\MyProfile\sys_manifest_classpath\weblogic_patch.jar
これらの変数について commEnv
スクリプトにデフォルトで含まれている定義については、表 5-2 を参照してください。
パッチ パス変数定義の追加作業を支援するために、Smart Update には起動スクリプト エディタが用意されています (「起動スクリプト エディタの使用」の説明を参照)。
注意 : 1 つの起動スクリプト内で参照する WebLogic システムレベル クラスのパッチ マニフェスト JAR ファイルは 1 つだけにしてください。複数のファイルを参照すると、実行時に予期できない動作が生じることがあります。
コンフィグレーション ウィザードで作成される startWebLogic
および startManagedWebLogic
起動スクリプトには、パッチ パス変数定義用のプレースホルダはありません。これらのスクリプトに変数定義を追加する場合は、どの WebLogic Server インスタンスに影響が及ぶかについて十分に注意してください。
パッチ パス変数定義を追加する起動スクリプトの個数を最小限にとどめることにより、インストールされている BEA Products のメンテナンス レベルやバージョンを変更またはアップグレードする際、起動スクリプト関連で必要となる作業の量が低減されます。
起動スクリプトの修正
プロファイルに含まれるクラスまたはライブラリ ファイルのパッチが起動スクリプトから確実に参照されるようにするために必要な実際の作業内容は、該当するパッチについて想定される適用範囲に、ご使用の BEA Products インストールの上で動作するドメインやサーバすべてが含まれるのか、それとも、インストール内にある特定のドメインまたはサーバのみが該当するのかによって異なります。
起動スクリプトに加える変更内容の詳細については、次の表で該当する手順説明を参照してください。
起動スクリプト エディタの使用
起動スクリプト エディタは Smart Update に用意されているツールです。使用環境内で目的の起動スクリプトを見つけ、スクリプト内にパッチ パス変数の定義を作成する作業を簡単に実行できます。起動スクリプト エディタを使用するには、次の手順を実行します。
Smart Update の [Target Installation] パネルで、対象インストールを選択します。
[Patches|Start Script Editor] メニュー オプションを選択します。
[Start Script Editor] ダイアログ ボックスで、次のとおり操作します。
ドメインまたはサーバから参照するパッチ プロファイルを選択します。カスタム パッチ プロファイルを使用してパッチの適用範囲を特定のドメインまたはサーバに限定する方法の詳細については、「個別のドメインまたはサーバへのパッチ適用」を参照してください。
詳細については、「起動スクリプトを開く方法」を参照してください。
パッチ プロファイルに、適切なパッチ パス変数定義を追加します。
PATCH_CLASSPATH
、WEBLOGIC_EXTENSION_DIRS
、PATCH_LIBPATH
、PATCH_PATH
の各変数に対して、以前に選択したパッチ プロファイル用にカスタマイズされた定義内容の候補が起動スクリプト エディタによって示されます。それらの定義内容は必要に応じて変更することもできます。
- デフォルト パッチ プロファイル内のパッチを参照するようにスクリプトを修正する場合は、「すべてのドメインに対するカスタム スクリプトでのパッチの参照」の手順説明を参照してください。
- カスタム パッチ プロファイル内のパッチを参照するようにスクリプトを修正する場合は、「個別のドメインまたはサーバへのパッチ適用」で、カスタム パッチ プロファイルの作成方法と、ドメインまたはサーバの起動スクリプトに目的のプロファイルへのポインタを追加する方法を参照してください。
注意 : 起動スクリプト内にパッチ パス変数の定義を追加する際は、別の起動スクリプトを呼び出すステートメントよりも前に定義を記述する必要があります。たとえば、setDomainEnv
スクリプトにパッチ パス変数の定義を追加する場合、commEnv
スクリプトを呼び出すステートメントよりも前に追加してください。この位置関係を守れば、追加した定義がその後呼び出される別の起動スクリプト内の定義によって上書きされることはありません。
起動スクリプトの変更方法は、Smart Update によって強制または制限されることはありません。ただし、コンフィグレーション ウィザードなどの標準ツールによってデフォルトで作成される起動スクリプトの内容と、ツールによって決定されるデフォルトの格納場所にはそのまま従うことをお勧めします。そうすることで、パッチ プロファイル内のパッチを参照するよう修正が必要な適切な起動スクリプトを見つけるための機能が期待どおりに動作し、Smart Update をより便利に利用できます。
[Start Script Editor] ダイアログ ボックスはウィザードではないため、次のような処理はできません。
修正が必要とされるすべての適切なスクリプトの特定。コンフィグレーション ウィザードによってデフォルトで作成される起動スクリプトを使用していれば、起動スクリプト エディタを使用して目的のスクリプトをすばやく見つけることができます。
サーバおよびドメインの起動メカニズムがカスタマイズされている場合、起動スクリプト エディタ内だけではすべての変更作業を完結できないことがあり、追加の作業手順が必要となる可能性があります。
起動スクリプトの修正。起動スクリプト エディタにはスクリプトが表示され、追加する定義内容の「候補」が示されますが、実際にどのような変更を加え、スクリプトをどこに保存するかについては、最終的にユーザが決定する必要があります。
起動スクリプトのバックアップ コピーの作成。
起動スクリプトを開く方法
[Start Script Editor] ダイアログ ボックスで [Open] をクリックして起動スクリプトを開くと、Smart Update の [Open Start Script] ダイアログ ボックスが表示されます。このダイアログ ボックスは、ドメイン、管理対象サーバ、クラスタ、または個別のサーバについて、パッチ プロファイル内のパッチへのポインタを追加する対象の起動スクリプトを見つけるために使用します。
[Start Script Editor] ダイアログ ボックスでは、表 5-4 で説明するアイコンが、修正対象の起動スクリプトが格納されているディレクトリへとユーザを誘導するために使用されています。
表 5-4 [Open Start Script] ダイアログ ボックスのアイコン
アイコン
|
意味
|
|
ドメイン内にある bin サブディレクトリ (修正対象のスクリプトがあるデフォルトの格納場所) の親ディレクトリ。
|
|
ドメイン サブディレクトリ (スクリプト ファイルがある bin など)。サブディレクトリを開いて中のスクリプトを表示するには、このアイコンをクリックする。
|
コンフィグレーション ウィザードによってドメイン用に作成されたディレクトリ構造を使用している場合は、Smart Update により、修正が必要な起動スクリプトのあるディレクトリへと誘導されます。
修正対象となる特定の起動スクリプトを見つける場合の詳細については、以下のトピックを参照してください。
ドメイン起動スクリプトの修正
ドメインの起動スクリプトに変更を加えるには、対象ドメインの bin
サブディレクトリにある setDomainEnv
または startWebLogic
スクリプトを選択します。図 5-3 は、Windows システムで setDomainEnv
スクリプトを選択する方法を示しています。
図 5-3 [Select Start Script] ダイアログ ボックスでの setDomainEnv スクリプトの選択
setDomainEnv
スクリプト内には、PATCH_CLASSPATH
、PATCH_LIBPATH
、PATCH_PATH
各変数の定義用プレースホルダがあります。このスクリプトに対する修正の詳細については、次の表を参照してください。
すべての管理対象サーバまたはクラスタの起動スクリプトの修正
ドメイン内にある管理対象サーバすべて (デフォルトではクラスタ内のサーバ全てを含む) に対する起動スクリプトに変更を加えるには、対象ドメインの bin
サブディレクトリにある startManagedWebLogic
スクリプトを選択します。図 5-4 は、Windows システムの場合についてその方法を示しています。
図 5-4 [Select Start Script] ダイアログ ボックスでの startManagedWebLogic スクリプトの選択
このスクリプトに対する修正の詳細については、次の表を参照してください。
特定サーバの起動スクリプトの修正
ドメイン内の特定のサーバに対する起動スクリプトに変更を加えるには、対象ドメインの bin
サブディレクトリにある、対象サーバ用に固有の名前を付けた起動スクリプトを選択します。図 5-5 は、Windows システムで startWebLogicServer1
スクリプトを選択する方法を示しています。
図 5-5 [Select Start Script] ダイアログ ボックスでのサーバ起動スクリプトの選択
このスクリプトに対する修正の詳細については、次の表を参照してください。
すべてのドメインに対するカスタム スクリプトでのパッチの参照
クラスおよびライブラリのパッチは、実際のドメインで使用されるクラスパスおよびライブラリ パスに確実に正しくロードされるようにすることが重要です。WebLogic ドメイン内でサーバ起動や環境設定に使用している起動スクリプトから、「すべてのドメインおよびサーバで使用されるクラスパスとライブラリ パスを定義したデフォルト スクリプト」に示すとおり commEnv
スクリプトの呼び出しが行われない場合は、次のようにスクリプトを修正する必要があります。
デフォルト パッチ プロファイルに適用されているクラスおよびライブラリのパッチを指し示す環境変数を定義する
それらの環境変数を次のパスに追加する
WebLogic システム クラスパス
WebLogic Server 上にデプロイされたアプリケーションで使用されるクラスパス (BEA Products の要件に応じて追加)
ライブラリ パス
次の方法を必要に応じて使用することにより、デフォルト commEnv
スクリプトに組み込まれているこの機能を、確実にカスタム スクリプトに追加してください。
デフォルト パッチ プロファイル内のパッチを参照するコードを単一のスクリプトにまとめ、一元管理する方法。その一元化したスクリプトを、すべての起動スクリプトから呼び出すようにします。パッチを参照するコードのメンテナンス作業が簡略化され、環境変化に伴って発生するスクリプト変更作業の量が最小限になるため、この方法を採用することをお勧めします。
デフォルト パッチ プロファイルに適用されているパッチを参照するコードを、個々の起動スクリプト内にコピーする方法。当該コードを個々の起動スクリプト内に確実にコピーすれば、適用済みのパッチがドメイン内のすべてのサーバから参照されることを保証できます。ただし、サーバの追加やコンフィグレーションの変化が使用環境内に生じると、起動スクリプトを正しくメンテナンスする作業の内容は複雑になっていきます。
ドメインおよびサーバの WebLogic システム クラスパスからデフォルト パッチ プロファイル内のパッチ JAR への参照
使用環境内にあるドメインおよびサーバが起動する際には、デフォルト パッチ プロファイルに適用されているパッチ JAR が WebLogic システム クラスパスに挿入される必要があります。パッチ JAR がクラスパスに確実に挿入されるようにするには、使用する起動スクリプトに、この節で説明するコードを必ず追加しなくてはなりません。
PATCH_CLASSPATH
環境変数のデフォルトの定義を追加します。次に例を示します。
if "%PATCH_CLASSPATH%" == "" set PATCH_CLASSPATH=
BEA_HOME
\patch_weblogic910\profiles\default\sys_manifest_classpath\weblogic_patch.jar
このように定義すれば、個別のサーバやドメインにおいて、カスタム パッチ プロファイル内のパッチを参照する必要がある場合には定義内容を上書きできます。定義内の BEA_HOME
は、BEA ホーム ディレクトリのパスを表します。この定義には絶対パスを指定することも、事前に定義した BEA_HOME
などの環境変数を使用する (推奨) こともできます。
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
このように定義すれば、パッチ JAR に収められたクラスが、クラスパス内でそれより後に参照されている同名の既存クラスに取って代わります。
デフォルト パッチ プロファイルに、WebLogic Server 上にデプロイされたアプリケーションで何らかの BEA Products のために使用されるパッチ JAR が含まれる場合は、次のように WEBLOGIC_EXTENSION_DIRS
環境変数を定義することで当該アプリケーション用のパッチ JAR を参照します。
if "%WEBLOGIC_EXTENSION_DIRS%" == "" set WEBLOGIC_EXTENSION_DIRS=%BEA_HOME%\patch_weblogic910\profiles\default\sysext_manifest_classpath
注意 : WEBLOGIC_EXTENSION_DIRS
変数は、WebLogic Server 上にデプロイされたアプリケーションのクラスパスにロードされるパッチ JAR ファイル内にあるクラスを必要とする BEA Products のために予約されています。デプロイされたアプリケーションに対するパッチ用のこのメカニズムは、現在、WebLogic Server 9.1 では使用されていません。
ドメインおよびサーバからデフォルト パッチ プロファイル内のライブラリ パッチへの参照
デフォルト パッチ プロファイルに適用されたネイティブ ファイルは、使用環境内にあるどのドメインまたはサーバが起動する際にも、システム ライブラリ パスに確実に挿入される必要があります。それらのファイルが正しく挿入されるようにするには、デフォルト パッチ プロファイルに適用されたパッチを参照するスクリプトに、この節で説明するコードを追加してください。
このコードをスクリプトに追加するには、次に示す適切な手順説明に従ってください。
UNIX システムの場合
PATCH_CLASSPATH
環境変数のデフォルトの定義を追加します。次に例を示します。
if [ "${PATCH_LIBPATH}" = "" ]; then
PATCH_LIBPATH=${BEA_HOME}/patch_weblogic910/profiles/default/native
fi
このように定義すれば、個別のサーバやドメインにおいて、カスタム パッチ プロファイル内のパッチを参照する必要がある場合には定義内容を上書きできます。定義内の BEA_HOME
は、BEA ホーム ディレクトリのパスを表します。この定義には絶対パスを指定することも、事前に定義した $BEA_HOME
などの環境変数を使用する (推奨) こともできます。
使用するマシンのシステム ライブラリ パスを設定するステートメントの冒頭に PATCH_LIBPATH
を追加します。このスクリプトを、BEA Products のサポート対象となっているすべてのオペレーティング システムおよびハードウェア アーキテクチャで使用できるようにするには、パスを設定するステートメントを各システムごとに個別に用意します。次に例を示します。
if [ -n "${LIBPATH}" ]; then
LIBPATH=${LIBPATH}:${WL_HOME}/server/native/aix/ppc
else
LIBPATH=${WL_HOME}/server/native/aix/ppc
fi
LIBPATH=${PATCH_LIBPATH}:${LIBPATH}
export LIBPATH
このように定義すれば、デフォルト パッチ プロファイル内のライブラリ ファイル パッチが、パス内でそれより後に参照されている同名の既存ファイルに取って代わります。
Windows システムの場合
PATCH_PATH
環境変数のデフォルトの定義を追加します。次に例を示します。
if "%PATCH_PATH%" == "" set PATCH_PATH=%BEA_HOME%\patch_weblogic910\profiles\default\native
このように定義すれば、個別のサーバやドメインにおいて、カスタム パッチ プロファイル内のパッチを参照する必要がある場合には定義内容を上書きできます。定義内の BEA_HOME
は、BEA ホーム ディレクトリのパスを表します。この定義には絶対パスを指定することも、事前に定義した %BEA_HOME%
などの環境変数を使用する (推奨) こともできます。
システム ライブラリ パスを設定するステートメントの冒頭に PATCH_PATH
を追加します。このスクリプトを、BEA Products のサポート対象となっているすべてのオペレーティング システムおよびハードウェア アーキテクチャで使用できるようにするには、パスを設定するステートメントを各システムごとに個別に用意します。次に例を示します。
if "%WL_USE_X86DLL%" == "true" set PATH=%PATCH_PATH%;%WL_HOME%\server\native\win\32;%WL_HOME%\server\bin;%JAVA_HOME%\jre\bin;%JAVA_HOME%\bin;%PATH%;%WL_HOME%\server\native\win\32\oci920_8
このように定義すれば、デフォルト パッチ プロファイル内のライブラリ ファイル パッチが、パス内でそれより後に参照されている同名の既存ファイルに取って代わります。