Interstage Application Server J2EE ユーザーズガイド |
目次
索引
![]() ![]() |
第1部 J2EE共通編 | > 第3章 J2EEアプリケーションの運用 | > 3.3 J2EEアプリケーションの配備と設定 |
クラスのオートリロード機能とは、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のインスタンスは破棄されますので、再作成する必要があります。
目次
索引
![]() ![]() |