Cosminexus システム構築ガイド

[目次][用語][索引][前へ][次へ]

4.9 J2EEアプリケーションの更新検知とリロードの設定

アプリケーション開発でのテストやシステムの運用中に,修正したJ2EEアプリケーションと動作中のJ2EEアプリケーションを入れ替えたい場合,リロード機能を使用した入れ替えができます。展開ディレクトリ形式のJ2EEアプリケーションを構成するファイルを更新した場合に,更新検知やコマンド実行によって,更新したJ2EEアプリケーションをリロードできます。リロード機能を使用することで,少ない手順でJ2EEアプリケーションを動的に入れ替えられるようになります。

この節では,展開ディレクトリ形式のJ2EEアプリケーションの更新検知とリロードをするための設定について説明します。更新検知とリロードについては,マニュアル「Cosminexus 機能解説」のJ2EEアプリケーションの更新検知とリロードに関する説明を参照してください。

展開ディレクトリ形式のJ2EEアプリケーションをリロードするために必要な設定は,構成ファイルの更新を検知してリロードするか,コマンドを実行してリロードするかによって異なります。展開ディレクトリ形式のJ2EEアプリケーションをリロードするために必要な設定を次の表に示します。

表4-14 リロードするために必要な設定

設定項目 更新検知によるリロードの場合 コマンドによるリロードの場合
リロード機能の適用範囲の設定
更新検知インターバルの設定
構成ファイル更新用インターバルの設定
リロード遅延実行の設定
セッション情報ファイル格納先ディレクトリの変更
JSP事前コンパイルの設定
J2EEアプリケーション実行時間の監視の設定

(凡例) ○:設定する。 △:必要に応じて設定する。 −:該当しない。


<この節の構成>
(1) リロード機能の適用範囲の設定
(2) 更新検知インターバルの設定
(3) 構成ファイル更新用インターバルの設定
(4) リロード遅延実行の設定
(5) セッション情報ファイル出力先の変更
(6) JSP事前コンパイルの設定
(7) J2EEアプリケーション実行時間の監視の設定

(1) リロード機能の適用範囲の設定

デフォルトの設定では,リロード機能は無効になっています。リロード機能を使用するためには,リロード機能を有効にして,適用範囲を設定する必要があります。リロード機能の適用範囲は,簡易構築定義ファイルで設定します。論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,次のパラメタを設定してください。

なお,リロード機能の有効/無効は,usrconf.propertiesのejbserver.rmi.localinvocation.scopeパラメタで指定するローカル呼び出し最適化機能の適用範囲と,リロード機能の適用範囲の組み合わせによって決まります。ローカル呼び出し最適化機能の適用範囲とリロード機能の適用範囲の対応については,マニュアル「Cosminexus 機能解説」の更新検知とリロードの概要に関する説明を参照してください。

(2) 更新検知インターバルの設定

J2EEサーバは,J2EEアプリケーションの構成ファイルを定期的に監視していて,構成ファイルが更新されると更新を検知します。J2EEアプリケーションの構成ファイルを監視して更新を検知する間隔は,更新検知インターバルとして設定します。更新検知インターバルは,簡易構築定義ファイルで設定します。論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,次のパラメタを設定してください。

更新検知インターバルの設定値の関係を次に示します。

EJBアプリケーションの場合
ejbserver.deploy.context.check_intervalの値が使用されます。なお,ejbserver.deploy.context.check_intervalに0を指定している場合,EJBアプリケーションは更新検知されません。

サーブレットの場合
webserver.context.check_intervalまたはejbserver.deploy.context.check_intervalの値が使用されます。優先順位を次に示します。
  1. webserver.context.check_intervalの値
  2. ejbserver.deploy.context.check_intervalの値
なお,webserver.context.check_intervalを指定していない場合には,ejbserver.deploy.context.check_intervalの値が使用されます。
また,webserver.context.check_intervalに0を指定している場合,サーブレットは更新検知されません。

JSPの場合
webserver.jsp.check_intervalまたはejbserver.deploy.context.check_intervalの値が使用されます。優先順位を次に示します。
  1. webserver.jsp.check_intervalの値
  2. ejbserver.deploy.context.check_intervalの値
なお,webserver.jsp.check_intervalを指定していない場合には,ejbserver.deploy.context.check_intervalの値が使用されます。
また,webserver.jsp.check_intervalに0を指定している場合,JSPは更新検知されません。

(3) 構成ファイル更新用インターバルの設定

構成ファイルの更新を検知してから,処理中のリクエスト数の監視を実施してリロードを開始するまでの時間を構成ファイル更新用インターバルとして設定します。構成ファイル更新用インターバルは,簡易構築定義ファイルで設定します。論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,次のパラメタを設定してください。

構成ファイル更新用インターバルの設定値の関係を次に示します。

EJBアプリケーションの場合
ejbserver.deploy.context.update.intervalの値が使用されます。

サーブレットの場合
webserver.context.update.intervalまたはejbserver.deploy.context.update.intervalの値が使用されます。優先順位を次に示します。
  1. webserver.context.update.intervalの値
  2. ejbserver.deploy.context.update.intervalの値
webserver.context.update.intervalを指定していない場合には,ejbserver.deploy.context.update.intervalの値が使用されます。

JSPの場合
webserver.jsp.update.intervalまたはejbserver.deploy.context.update.intervalの値が使用されます。優先順位を次に示します。
  1. webserver.jsp.update.intervalの値
  2. ejbserver.deploy.context.update.intervalの値
webserver.jsp.update.intervalを指定していない場合には,ejbserver.deploy.context.update.intervalの値が使用されます。

(4) リロード遅延実行の設定

Webアプリケーションをリロードする場合,リロード遅延実行を設定できます。デフォルトの設定では,構成ファイル更新用インターバルのあとに新規リクエストを実行待ちにしますが,リロード遅延実行を設定しておくと,処理中のリクエスト数が0になるか,または設定した時間になるまで新規リクエストを受け付けることができます。リロード遅延実行では,リロード遅延実行を使用するかどうか,およびリロード処理を開始するまでの時間(最大遅延時間)を設定します。リロード遅延実行は,簡易構築定義ファイルで設定します。論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,次のパラメタを設定してください。

(5) セッション情報ファイル出力先の変更

Webアプリケーションをリロードする場合は,リロード実行前に生成したセッション情報を引き継いで,リロード後も継続して利用します。セッション情報は,セッション情報ファイルに出力されます。

セッション情報ファイルの出力先
セッション情報ファイルは,デフォルトでは次の場所に出力されます。
  • Windowsの場合
    <Cosminexusのインストールディレクトリ>\CC\server\repository\<サーバ名>\web\<コンテキストルート名>\cjwebsession.dat
  • UNIXの場合
    /opt/Cosminexus/CC/server/repository/<サーバ名>/web/<コンテキストルート名>/cjwebsession.dat

Webアプリケーション単位のディレクトリ名
Webアプリケーション単位のディレクトリは,コンテキストルート名を基に規則に従ったディレクトリ名となります。コンテキストルート名にスラッシュ(/),ドル記号($),パーセント(%),プラス記号(+)が含まれる場合は,次に示す文字に変換します。
変換前の文字 変換後の文字
/ $2f
$ $24
% $25
+ $2b
出力先となるコンテキストルート名のディレクトリは,Webアプリケーションの開始時に作成されます。ただし,コンテキストルートがルートコンテキストの場合は,出力先ディレクトリのコンテキストルートは「$2f」として作成されます。作成されたディレクトリは,Webアプリケーションの終了時に削除されます。

セッション情報ファイルの出力先を変更する場合には,簡易構築定義ファイルで設定します。論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,次のパラメタを設定します。

(例)セッション情報ファイルの出力先の設定例
 
<configuration>
  <logical-server-type>j2ee-server</logical-server-type>
  <param>
    <param-name>ejbserver.deploy.session.work.directory</param-name>
    <param-value>C:\tmp\session_work</param-value>
  </param>
  :
</configuration>
 
この設定例の場合,コンテキストルート名が「examples」のWebアプリケーションのセッション情報ファイルは,次の場所に出力されます。
C:\tmp\session_work\web\examples\cjwebsession.dat

(6) JSP事前コンパイルの設定

JSP事前コンパイルでJSPファイルから生成されたクラスファイルを更新した場合も,J2EEアプリケーションの構成ファイルの更新を検知し,リロードが実行されます。

cjstartappコマンドに-jspcオプションを指定してJSP事前コンパイルを実行する場合には,usrconf.propertiesでJSPワークディレクトリなどを設定しておく必要があります。JSP事前コンパイルの設定については,「4.2(1) Webコンテナの機能を使用するための設定」を参照してください。

なお,アプリケーション開発時にcjjspcコマンドを使用してJSP事前コンパイルを実行する場合には,JSPワークディレクトリなどはコマンドのオプションで指定します。cjjspcコマンドを使用したJSPの事前コンパイルについては,マニュアル「Cosminexus アプリケーション開発ガイド」のJSPファイルの事前コンパイルに関する説明を参照してください。

(7) J2EEアプリケーション実行時間の監視の設定

構成ファイルの更新を検知した場合,処理中のリクエストの処理が完了するとリロード処理を開始しますが,処理中のリクエストの処理が完了しない場合には,J2EEアプリケーション実行時間の監視のメソッドタイムアウトおよびメソッドキャンセルを実施することで,リロード処理を開始できます。

必要に応じて,J2EEアプリケーション実行時間の監視を設定してください。J2EEアプリケーション実行時間の監視の設定については,「4.14 J2EEアプリケーション実行時間の監視の設定」を参照してください。