Interstage Application Server J2EE ユーザーズガイド |
目次 索引 |
第1部 J2EE共通編 | > 第3章 J2EEアプリケーションの運用 |
J2EEアプリケーションを実行環境に配備します。
J2EEのHotDeploy機能を使用すると、IJServerを停止せずにモジュールの配備または再配備、配備解除が実行でき、運用中のIJServerに対してWebアプリケーションとEJBアプリケーションを追加または更新、削除できます。
配備中、または配備解除中ではないモジュールに対してリクエスト処理を行うことができるため、アプリケーションの開発が効率的に実施でき、IJServerの連続運用も可能です。
J2EEのHotDeploy機能を使用すると、以下のように配備のみでアプリケーションを入れ替えることが可能です。
HotDeploy機能について、以下の順で説明します。
開発効率の向上、および運用中の保守性の向上を目的とした機能として“HotDeploy機能”と“クラスのオートリロード機能”を提供しています。HotDeploy機能だけを使用しても十分な効果がありますが、クラスのオートリロード機能を使用することで、さらに開発効率が向上する場合があります。クラスのオートリロード機能については、“クラスのオートリロード機能”を参照してください。
HotDeploy機能を使用する場合は、Interstage管理コンソールの[ワークユニット] > [新規作成]タブを選択し、[詳細設定]表示後の[共通定義]より設定してください。また、ワークユニット作成後は、Interstage管理コンソールの[ワークユニット] > “ワークユニット名” > [環境設定]タブを選択し[共通定義]から変更できます。
HotDeploy機能を使用する場合は、後述の新規モジュールの配備または既存配備モジュールの再配備を効率的に行うため、HotDeploy機能を使用しない場合とIJServerの起動状態が異なる場合があります。
以下に、配備モジュールとIJServerの起動状態の関係について説明します。
HotDeploy機能を使用する場合と使用しない場合について、以下の表に示します。
【EAR間で分離する/すべて分離する】
配備モジュールが存在しない場合は、IJServerの起動は行いません。
配備モジュールが存在する場合は、以下の表に従いIJServerの起動を行います。
|
HotDeploy機能を使用しない場合 |
HotDeploy機能を使用する場合 |
|||
配備されているモジュールの状態/配備されているモジュールの種別 |
一部またはすべてのモジュールが活性不可能 |
すべてのモジュールが活性可能 |
一部またはすべてのモジュールが活性不可能 |
すべてのモジュールが活性可能 |
|
war |
起動します |
起動します |
|||
ejb-jar |
起動しません |
起動します |
|||
ear |
warのみ |
起動しません |
|||
ejb-jarのみ |
起動しません |
起動します |
|||
warおよびejb-jar |
含まれるejb-jarがすべて活性可能なモジュールの場合は起動します |
起動します |
HotDeploy機能を使用しない場合、EJBアプリケーションの活性化に失敗するとIJServerは起動しません。
新規配備/再配備/配備解除/再活性は、Interstage管理コンソールを使用して実行してください。
なお、新規配備または再配備、配備解除、再活性の実行に失敗した場合については、“トラブルシューティング集”の“HotDeploy機能使用時の異常”を参照してください。
各モジュールの状態はInterstage管理コンソールから確認できます。Interstage管理コンソールには以下のように表示されます。
状態
説明
対処
活性
配備モジュールがリクエストを受付けることができます。
−
非活性
配備モジュールがリクエストを受付けることができません。
コンテナログを参照し、非活性状態となっている原因を取り除き、再活性処理を行ってください。
活性(一部)
配備モジュールがリクエストを受付けることができますが、IJServerの一部のプロセスでモジュールが非活性状態となっています。
コンテナログを参照し、非活性状態となっている原因を取り除き、再活性処理を行ってください。
活性(不整合)
配備モジュールがリクエストを受付けることができますが、各プロセスで活性化されているモジュールの整合性が合っていません。
(配備中にIJServerの一部プロセスを再起動したため、あるプロセスが再配備前のモジュールをロードしています。)
活性(一部)と活性(不整合)が混在している状態もこの状態となります。−
活性化処理中
配備モジュールがリクエストの受付けを開始しようとしています。
−
非活性化処理中
配備モジュールがリクエストの受け付けを停止しようとしています。
状態が変わらないときは、メモリ不足が発生して処理が中断された場合があります。IJServerを停止し、再度起動を実行してください。
異常
配備、配備解除、再活性中にIJServerの一部プロセスが再起動されたため、以下の異常が発生しています。
- 活性化処理中のプロセスと非活性化処理中のプロセスが混在しています。
IJServerを停止し、再度起動を実行してください。
新規配備または再配備、配備解除、再活性を実行した場合、配備されたモジュールが非活性化、および活性化されますが、この場合配備するモジュールのクラスを参照するすべてのモジュールも非活性化および、活性化されます。
配備モジュールの参照関係はクラスローダの分離方法(EAR間で分離、すべて分離、分離しない)により異なります。
クラスローダの分離方法ごとの非活性化および、活性化する配備モジュールは、以下のように異なります。クラスローダの分離については、“クラスローダの分離”を参照してください。
クラスローダの設定
配備するモジュール
EAR
WAR
ejb-jar
RAR
EAR間で分離
対象のEARのみ
対象のWARのみ
配備されているすべてのejb-jarまたはWAR、RAR
配備されているすべてのejb-jarまたはWAR、RAR
すべて分離
対象のEARのみ
対象のWARのみ
対象のejb-jarのみ
対象のRARのみ
分離しない
−※
−※
−※
−※
※)HotDeploy機能は使用できません。
以下にクラスローダの分離形態による非活性化、および活性化について説明します。
図中の非活性化の単位で示す範囲で非活性化し、活性化の単位で示す範囲で活性化します。なお、モジュールの活性化に失敗した場合、失敗したモジュールを除いて他のモジュールについては活性化を継続します。
Sharedディレクトリには以下の2種類があり、再活性の動作が異なります。
クラスのオートリロード機能とは、IJServerを停止せずに配備済みのアプリケーションのクラスを入れ替えることができる機能です。
ただし、jarファイルを新規に追加した場合はクラスのオートリロードは動作しません。したがって、追加したjarファイルはモジュールの再活性またはIJServerを再起動するまでロードされません。
クラスのオートリロードを行う場合の設定は、Interstage管理コンソール > ワークユニット > 配備で、クラスのオートリロード機能を“使用する”を選択します。
クラスのオートリロード機能を使用した場合、修正したアプリケーションのファイルを置き換えるだけで自動的にロードされるため、アプリケーションを配備し直す必要がなく、またIJServerの停止と起動の必要もないため、効率よく開発できます。
アプリケーションの開発を行う場合は、クラスのオートリロード機能を行うことを推奨します。
IJServerが起動している状態でオートリロードの設定を変更した場合、以下のいずれかの操作で変更したクラスがロードされます。なお、変更の対象以外のモジュールに対するリクエストは影響なく処理できます。
配備モジュールのクラスファイルを頻繁に変更して動作確認する開発作業中は、クラスのオートリロード機能を使用することで開発効率を向上させることが可能です。ただし、クラスのオートリロード機能はコンテナがクラスファイルの変更を絶えず監視するため、処理性能が劣化します。このため、アプリケーションの開発時のみ使用してください。
また、以下のクラスについては入れ替えることができません。以下のクラスを入れ替える場合にはHotDeploy機能を使用してください。HotDeploy機能については“J2EEのHotDeploy機能”を参照してください。
【クラスのオートリロード機能で入れ替えることができないクラス】
EJBのインタフェース(Remoteインタフェース/Homeインタフェース/Localインタフェース/LocalHomeインタフェース)
クラスのオートリロード機能ではクラスを定期的に監視するため、Interstage管理コンソールから監視時間間隔を定義する必要があります。Interstage管理コンソールの[ワークユニット] > “ワークユニット名” > [環境設定]タブから配備モジュールに対する設定を行ってください。詳細はInterstage管理コンソールのヘルプを参照してください。
実際に入れ替えを行いたいクラスファイルは、配備ディレクトリに直接コピーしてください。
クラスのオートリロード機能の対象は以下のディレクトリに含まれるクラスです。コピー先(配備ディレクトリ)の詳細については、“IJServerのファイル構成”を参照してください。
クラスファイルを入れ替えた場合、そのクラスを参照できるモジュールのクラスがすべてオートリロードされます。クラスファイルを参照できるモジュールは、クラスローダの設定により異なります。以下にオートリロードされるモジュールのクラスを示します。
【オートリロードされるクラス】
クラスローダの設定
入れ替えるクラス
個別に配備されたWARのクラス
EARに含まれるWARのクラス
個別に配備されたejb-jarのクラス
EARに含まれるejb-jarのクラス
EARに含まれるSharedディレクトリ配下のクラス
個別に配備されたRARのクラス
EARに含まれるRARのクラス
EAR間で分離
入れ替えたWARのクラスのみ
入れ替えたWARのクラスのみ
個別に配備されたejb-jarまたはRAR、WARのクラスすべて
EARに含まれるモジュールのクラスすべて
EARに含まれるモジュールのクラスすべて
−※2
EARに含まれるモジュールのクラスすべて
すべて分離
入れ替えたWARのクラスのみ
入れ替えたWARのクラスのみ
入れ替えたejb-jarのクラスのみ
EARに含まれるモジュールのクラスすべて
EARに含まれるモジュールのクラスすべて
−※2
EARに含まれるモジュールのクラスすべて
分離しない
入れ替えたWARのクラスのみ
※1
※1
※1
※1
※1
※1
※1)クラスローダを分離しないため、WAR間以外は配備したモジュール同士がすべて参照できるため、クラスのオートリロードは動作しません。
※2)単体で配備されたRARはオートリロードの対象となりません。このため、クラスのオートリロードは動作しません。
Sharedディレクトリには以下の2種類があり、クラスのオートリロードの動作が異なります。
|
クラスファイルを追加した場合 |
jarファイルを追加した場合 |
ロード済みのクラスファイルを置き換えた場合 |
ロードされていないクラスファイルを置き換えた場合 |
jarファイルを置き換えた場合 |
アプリケーションの非活性化、活性化 |
動作しない |
動作しない |
動作する |
動作しない |
動作する |
アプリケーションの非活性化/活性化が動作した場合、ServletのセションとSTATEFUL Session Beanのインスタンスは破棄されますので、再作成する必要があります。
Interstage管理コンソールを使用して、WebアプリケーションとEJBアプリケーションをカスタマイズします。
Interstage管理コンソールの[ワークユニット] > “ワークユニット名”のカスタマイズしたいアプリケーションをクリックしてください。
各定義の詳細については、Interstage管理コンソールのヘルプを参照してください。
J2EEアプリケーションクライアントやアプレットからEJBを参照する場合には、別途EJBクライアントの環境設定が必要となります。詳細については“EJBを参照する場合の環境設定”を参照してください。
J2EEでHTTPトンネリングを使用する場合は、“セキュリティシステム運用ガイド”の“J2EEのHTTPトンネリング”を参照してください。
目次 索引 |