Cosminexus システム運用ガイド

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

4.6.7 テストモードでのJ2EEアプリケーションの運用

ここでは,テストモードでのJ2EEアプリケーションの運用について説明します。

J2EEアプリケーションを新しく登録する場合や,すでに動作中のJ2EEアプリケーションを入れ替えるとき,本番運用を開始する前に,本番環境で問題なく動作することを確認したいことがあります。このような場合にテストモードを使用します。

テストモードでの運用は,J2EEアプリケーション単位で実行できます。テストモードから本番運用時のモード(通常モード)に変更する場合,J2EEアプリケーションの設定やカスタマイズをし直す必要はありません。また,一つの本番環境で表示名が同じJ2EEアプリケーションを,通常モードとテストモードで同時に開始できます。これによって,既存のJ2EEアプリケーションでクライアントにサービスを提供しながら,入れ替える予定のJ2EEアプリケーションの動作を同じ環境で確認できます。

テストモードで運用できるのは,J2EEアプリケーションだけです。J2EEアプリケーション内でDB Connectorなどのリソースアダプタを使用する場合は,本番時に使用するものを使用してください。また,Webサーバ上の静的コンテンツについても,本番用に構築したWebサーバ上に配置して使用してください。

<この項の構成>
(1) 運用管理コマンド使用時の注意
(2) J2EEアプリケーションを入れ替える場合にテストモードを使用する手順
(3) テストモードで実行できるサーバ管理コマンド

(1) 運用管理コマンド使用時の注意

運用管理コマンド(mngsvrutil)では,テストモードで動作しているJ2EEアプリケーションを操作できません。テストモードでJ2EEアプリケーションを操作したい場合は,サーバ管理コマンドを実行してください。ただし,テストモードの場合も,運用管理コマンドで稼働情報を出力できます。

なお,J2EEアプリケーションのモードが,サーバ管理コマンドでテストモードに変更された場合,運用管理コマンドにサブコマンド「get」を指定して取得したJ2EEアプリケーションの稼働情報のfullyQualifiedNameに,「_TEST」という文字列が付いて出力されます。

(2) J2EEアプリケーションを入れ替える場合にテストモードを使用する手順

J2EEアプリケーションを入れ替えるときに,J2EEアプリケーションをテストモードで開始する手順の例を示します。なお,この手順では,入れ替え元のJ2EEアプリケーションは,J2EEサーバ上で開始されていることを前提としています。

準備
Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合,あらかじめ次の作業が必要です。
  • リダイレクタの設定(URLのマッピング)
    通常モードのコンテキストルートを含むURLのマッピングに加えて,テストモードのコンテキストルートを含むURLのマッピングを設定してください。Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合,Webアプリケーションのコンテキストルートにプリフィックス「_test_」を付けたものが,コンテキストルートとして使用されます。例えば,通常モードのコンテキストルートが「/jsptobean」の場合,テストモードのコンテキストルートは「/_test_/jsptobean」になります。
    URLパターンでのリクエスト振り分けの設定については,マニュアル「Cosminexus システム構築ガイド」を参照してください。
  • Webサーバの再起動
    Webサーバを再起動して,リダイレクタの設定を有効にしてください。

手順
  1. J2EEアプリケーションをテストモードでインポートします。
    J2EEアプリケーションのインポートには,サーバ管理コマンド(cjimportapp)を使用します。
    実行形式と実行例を次に示します。
    実行形式
     
    cjimportapp <J2EEサーバ名> -test -f <EARファイルのパス>
     
    実行例
    cjimportapp MyServer -test -f App1.ear
     
  2. インポートしたJ2EEアプリケーションのプロパティ設定とカスタマイズを実行します。
    サーバ管理コマンド(cjgetapppropおよびcjsetappprop)を使用して実行します。それぞれのコマンドには-testオプションを指定して,テストモードで実行します。
    cjgetapppropコマンドの実行形式と実行例を次に示します。
    実行形式
     
    cjgetappprop <J2EEサーバ名> -test -name <J2EEアプリケーション名> -type all -c <アプリケーション統合属性ファイルの出力先パス>
     
    実行例
    cjgetappprop MyServer -test -name App1 -type all -c App1Prop.xml
     
    属性ファイルはテキストエディタなどで編集します。
    cjsetapppropコマンドの実行形式と実行例を次に示します。
    実行形式
     
    cjsetappprop <J2EEサーバ名> -test -name <J2EEアプリケーション名> -type all -c <編集したアプリケーション統合属性ファイルのパス>
     
    実行例
    cjsetappprop MyServer -test -name App1 -type all -c App1Prop.xml
  3. J2EEアプリケーションをテストモードで開始します。
    cjstartappコマンドの実行形式と実行例を次に示します。
    実行形式
     
    cjstartapp <J2EEサーバ名> -test -name <J2EEアプリケーション名>
     
    実行例
    cjstartapp MyServer -test -name App1
  4. テストを実施します。
    テスト用のクライアントから適宜操作を実行して,テストします。問題ないことが確認できたら,手順5.に進みます。
    テスト結果に問題があった場合は,J2EEアプリケーションを修正して,手順1.からもう一度実行してください。なお,同じ名称のJ2EEアプリケーションは同じモードで登録できません。このため,テストが失敗したテストモードのJ2EEアプリケーションは削除してください。テストモードのJ2EEアプリケーションの削除は,サーバ管理コマンド(cjdeleteapp)に-testオプションを付けた形式で実行してください。
    ポイント
    • テストモードで動作しているJ2EEアプリケーションは,テストモード用に設定した特定のクライアントからだけ利用できます。Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合,Webアプリケーションのコンテキストルートにプリフィックス「_test_」を付けたものが,コンテキストルートとして使用されます。例えば,コンテキストルートが「/jsptobean」で,本番運用でのURLが「http://www.hitachi.co.jp/jsptobean/account.jsp」の場合,テストモードでのURLは,「http://www.hitachi.co.jp/_test_/jsptobean/account.jsp」になります。テスト用のクライアントからはこのURLを使用してJ2EEアプリケーションに対して操作を実行してください。
    • EJBを含むJ2EEアプリケーションをテストモードで運用する場合,EJBはテスト用の名前空間に登録されます。EJBクライアントアプリケーションからEJBを呼び出す場合には,通常モード用の名前空間のルートコンテキスト名で始まる検索文字列「HITACHI_EJB/…」ではなく,テストモード用の名前空間のルートコンテキスト名で始まる検索文字列「$HITACHI_TEST/…」を指定してlookupを実行してください。
  5. テストモードで運用しているJ2EEアプリケーションを停止します。
    実行形式
     
    cjstopapp <J2EEサーバ名> -test -name <J2EEアプリケーション名>
     
    実行例
    cjstopapp MyServer -test -name App1
  6. 通常モードで運用しているJ2EEアプリケーションを停止します。
    なお,J2EEアプリケーションを入れ替えではなく新規にインポートした場合,この操作は不要です。
    実行形式
     
    cjstopapp <J2EEサーバ名> -name <J2EEアプリケーション名>
     
    実行例
    cjstopapp MyServer -name App1
  7. 通常モードで運用していたJ2EEアプリケーションの名称を変更します。
    なお,J2EEアプリケーションを入れ替えではなく新規にインポートした場合,この操作は不要です。
    また,この操作は,インポートしたファイルの世代を管理したい場合などに,必要に応じて実行してください。例えば,「App1」というJ2EEアプリケーションの場合,「App1_bak」などに変更します。
    実行形式
     
    cjrenameapp <J2EEサーバ名> -name <変更前のJ2EEアプリケーション名> -newname <変更後のJ2EEアプリケーション名>
     
    実行例
    cjrenameapp MyServer -name App1 -newname App1_bak
  8. テストモードで運用していたJ2EEアプリケーションのモードを通常モードに変更します。
    実行形式
     
    cjchmodapp <J2EEサーバ名> -test -name <テストモードで動作を確認したJ2EEアプリケーション名> -mode normal
     
    実行例
    cjchmodapp MyServer -test -name App1 -mode normal
  9. 手順8.でモードを変更したJ2EEアプリケーションを開始します。
    実行形式
     
    cjstartapp <J2EEサーバ名> -name <J2EEアプリケーション名>
     
    実行例
    cjstartapp MyServer -name App1

(3) テストモードで実行できるサーバ管理コマンド

テストモードで実行できるサーバ管理コマンドを示します。

それぞれのコマンドの詳細については,マニュアル「Cosminexus リファレンス コマンド編」を参照してください。

表4-16 テストモードで実行できるサーバ管理コマンド

コマンド テストモードでの動作
cjchmodapp テストモードでインポートしたJ2EEアプリケーションのモードを通常モードに切り替えられます。また,通常モードでインポートしたJ2EEアプリケーションのモードをテストモードに切り替えられます。
cjdeleteapp テストモードのJ2EEアプリケーションを削除できます。
cjgetappprop テストモードのJ2EEアプリケーションのアプリケーション属性,WAR属性およびEJB-JAR属性を取得できます。
cjgetstubsjar テストモードのJ2EEアプリケーションからRMI-IIOPスタブおよびインタフェースを取得できます。
cjimportapp J2EEアプリケーションをテストモードでインポートできます。インポートは,実行時情報を含む形式(ZIPファイル)または実行時情報を含まない形式(EARファイル)のどちらも実行できます。
cjlistapp J2EEサーバに含まれるすべてのJ2EEアプリケーションのうち,テストモードのJ2EEアプリケーションの一覧を表示できます。また,テストモードのJ2EEアプリケーションに含まれるWARファイルおよびEJB-JARファイルの一覧を表示できます。
cjlistthread テストモードのJ2EEアプリケーションのスレッド一覧を表示できます。
cjreplaceapp テストモードのJ2EEアプリケーションをリデプロイできます。
cjreloadapp テストモードのJ2EEアプリケーションをリロードできます。
cjsetappprop テストモードのJ2EEアプリケーションのアプリケーション属性,WAR属性およびEJB-JAR属性を設定できます。
cjstartapp J2EEアプリケーションをテストモードで開始できます。
cjstopapp テストモードで開始したJ2EEアプリケーションを停止できます。
cjstopthread テストモードのJ2EEアプリケーションに対してメソッドキャンセルを実行できます。