Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

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

13.7.1 リデプロイによるJ2EEアプリケーションの入れ替え

ここでは,リデプロイによるJ2EEアプリケーションの入れ替えについて説明します。

リデプロイとは,アーカイブ形式のJ2EEアプリケーションを入れ替える場合に,少ない手順で高速に入れ替えられるデプロイ方法です。ロジックだけを変更したJ2EEアプリケーションを入れ替えたい場合などに利用できます。リデプロイは,サーバ管理コマンドを使用して実行できます。

リデプロイを実行できる条件を次に示します。

リデプロイを実行できる条件
  • 入れ替えられるのは,実行時情報を含まないJ2EEアプリケーションだけです。実行時情報を含むJ2EEアプリケーション(ZIPファイル)はリデプロイできません。
  • 入れ替え前と入れ替え後のJ2EEアプリケーションの構成が同じである必要があります。J2EEアプリケーションに含まれるEJB-JAR,リソースアダプタおよびWARの数が異なったり,それらのファイル名称が異なったりする場合は,リデプロイはできません。また,J2EEアプリケーションの名称も同じである必要があります。
  • 入れ替え前と入れ替え後のJ2EEアプリケーションに含まれるEJB-JAR内のホームインタフェース(ローカル,リモート),コンポーネントインタフェース(ローカル,リモート),ビジネスインタフェース(ローカル,リモート)のメソッド定義,およびアノテーションの値が同じである必要があります。
  • ランタイム属性だけを引き継ぐ設定をしている場合に,アプリケーション開発環境で設定済みのDDファイル(application.xml,ejb-jar.xml,ra.xmlおよびweb.xml)の定義内容が同じである必要があります。

また,J2EEアプリケーションを入れ替える時に,入れ替え前のJ2EEアプリケーションを別な名称に変更して退避しておくと,名称によるJ2EEアプリケーションの世代管理が実現できます。ここでは,J2EEアプリケーションの名称変更についてもあわせて説明します。

リデプロイでは,入れ替え前のJ2EEアプリケーションの情報を,入れ替え後のJ2EEアプリケーションに引き継げます。次の情報が引き継げます。

Application Serverのバージョンが06-70以降の場合
デフォルトの設定の場合,入れ替え後のJ2EEアプリケーションには,入れ替え前のJ2EEアプリケーションのすべての属性が引き継がれます。06-70よりも前のバージョンと同じように,ランタイム属性だけを引き継ぎたい場合は,オプションを指定してcjreplaceappコマンドを実行する必要があります。コマンドの詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjreplaceapp(アプリケーションの入れ替え)」を参照してください。

Application Serverのバージョンが06-70より前の場合
入れ替え前のJ2EEアプリケーションの属性ファイルに設定したランタイム属性が引き継がれます。
注※ 属性ファイルには,DD(application.xml,ejb-jar.xml,ra.xml,web.xml)の定義と属性ファイル独自の定義が設定できます。属性ファイル独自の定義のことを,ランタイム属性といいます。
注意
入れ替えるJ2EEアプリケーションにcosminexus.xmlが含まれている場合,入れ替える前のアプリケーションサーバ独自の定義情報をいったんデフォルト値に戻してから,cosminexus.xmlの定義情報を読み込みます。入れ替えるアプリケーションにcosminexus.xmlが含まれていない場合,入れ替え前のcosminexus.xmlの定義情報を引き継ぎます。

リデプロイを実行するとき,J2EEアプリケーションは開始,停止どちらの状態でもかまいません。開始状態のJ2EEアプリケーションを入れ替えた場合,J2EEアプリケーションは入れ替え後に自動的に開始されます。ただし,プールやキャッシュに格納されていたJ2EEアプリケーション関連のオブジェクトは破棄されます。停止状態のJ2EEアプリケーションを入れ替えた場合は,入れ替え後のJ2EEアプリケーションも停止した状態になります。J2EEアプリケーションの状態とリデプロイの関係については,「13.7.2 J2EEアプリケーションの状態と入れ替え」を参照してください。

ポイント
J2EEアプリケーションが開始されている状態でリデプロイを実行した場合,リデプロイ処理の中でJ2EEアプリケーションは停止され,入れ替え後に再開始されます。このとき,停止処理の実行時間がサーバ管理コマンド(cjreplaceapp)で設定したタイムアウト時間を超過した場合,J2EEアプリケーションの強制停止が実行されます。タイムアウト時間を指定しなかった場合は,デフォルトのタイムアウト時間である60秒を超過すると,強制停止が実行されます。強制停止実行後にさらにタイムアウト時間を超過した場合は,コマンドが異常終了します。
また,入れ替え後にJ2EEアプリケーションを再開始するとき,開始処理の実行時間がサーバ管理コマンド用のusrconf.propertiesのejbserver.rmi.request.timeoutキーに指定したタイムアウト時間を超過した場合も,コマンドが異常終了します。

入れ替え作業の実行形式と実行例を次に示します。

実行形式
 
cjreplaceapp <J2EEサーバ名> -name <J2EEアプリケーション名> -f <入れ替えるEARファイルのパス>
 

実行例
cjreplaceapp MyServer -name App1 -f App1.ear