Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第1部 J2EE共通編> 第3章 J2EEアプリケーションの運用> 3.3 J2EEアプリケーションの配備と設定

3.3.2 クラスのオートリロード機能

 クラスのオートリロード機能とは、IJServerを停止せずに配備済みのアプリケーションのクラスを入れ替えることができる機能です。
 ただし、jarファイルを新規に追加した場合はクラスのオートリロードは動作しません。したがって、追加したjarファイルはモジュールの再活性またはIJServerを再起動するまでロードされません。

 クラスのオートリロードを行う場合の設定は、Interstage管理コンソール > ワークユニット > 配備で、クラスのオートリロード機能を“使用する”を選択します。

 クラスのオートリロード機能を使用した場合、修正したアプリケーションのファイルを置き換えるだけで自動的にロードされるため、アプリケーションを配備し直す必要がなく、またIJServerの停止と起動の必要もないため、効率よく開発できます。
 アプリケーションの開発を行う場合は、クラスのオートリロード機能を行うことを推奨します。

 IJServerが起動している状態でオートリロードの設定を変更した場合、以下のいずれかの操作で変更したクラスがロードされます。なお、変更の対象以外のモジュールに対するリクエストは影響なく処理できます。

■設計方法

 配備モジュールのクラスファイルを頻繁に変更して動作確認する開発作業中は、クラスのオートリロード機能を使用することで開発効率を向上させることが可能です。ただし、クラスのオートリロード機能はコンテナがクラスファイルの変更を絶えず監視するため、処理性能が劣化します。このため、アプリケーションの開発時のみ使用してください。

 また、以下のクラスについては入れ替えることができません。以下のクラスを入れ替える場合にはHotDeploy機能を使用してください。HotDeploy機能については“J2EEのHotDeploy機能”を参照してください。

【クラスのオートリロード機能で入れ替えることができないクラス】
 EJBのインタフェース(Remoteインタフェース/Homeインタフェース/Localインタフェース/LocalHomeインタフェース)

■運用方法

 クラスのオートリロード機能ではクラスを定期的に監視するため、Interstage管理コンソールから監視時間間隔を定義する必要があります。Interstage管理コンソールの[ワークユニット] > “ワークユニット名” > [環境設定]タブから配備モジュールに対する設定を行ってください。詳細はInterstage管理コンソールのヘルプを参照してください。

 実際に入れ替えを行いたいクラスファイルは、配備ディレクトリに直接コピーしてください。
 クラスのオートリロード機能の対象は以下のディレクトリに含まれるクラスです。コピー先(配備ディレクトリ)の詳細については、“IJServerのファイル構成”を参照してください。

【WARファイルを配備した場合】
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[Webモジュール名]\WEB-INF\lib配下の拡張子が“.jar”のファイル
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[Webモジュール名]\WEB-INF\classes配下の拡張子が“.class”のファイル
【ejb-jarファイルを配備した場合】
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[EJBモジュール名]配下の拡張子が“.class”のファイル
【EARファイルを配備した場合】
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[EARモジュール名]\[WARのファイル名]\WEB-INF\lib配下の拡張子が“.jar”のファイル
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[EARモジュール名]\[WARのファイル名]\WEB-INF\classes配下の拡張子が“.class”のファイル
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[EARモジュール名]\[ejb-jarのファイル名]配下の拡張子が“.class”のファイル
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[EARモジュール名]\[RARのファイル名]配下の拡張子が“.jar”のファイル
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[EARモジュール名]\Shared\lib配下の拡張子が“.jar”のファイル
[J2EE共通ディレクトリ]\ijserver\[IJServer名]\apps\[EARモジュール名] \Shared\classes配下の拡張子が“.class”のファイル

【WARファイルを配備した場合】
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[Webモジュール名]/WEB-INF/lib配下の拡張子が“.jar”のファイル
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[Webモジュール名]/WEB-INF/classes配下の拡張子が“.class”のファイル
【ejb-jarファイルを配備した場合】
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[EJBモジュール名]配下の拡張子が“.class”のファイル
【EARファイルを配備した場合】
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[EARモジュール名]/[WARのファイル名]/WEB-INF/lib配下の拡張子が“.jar”のファイル
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[EARモジュール名]/[WARのファイル名]/WEB-INF/classes配下の拡張子が“.class”のファイル
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[EARモジュール名]/[ejb-jarのファイル名]配下の拡張子が“.class”のファイル
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[EARモジュール名]/[RARのファイル名]配下の拡張子が“.jar”のファイル
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[EARモジュール名]/Shared/lib配下の拡張子が“.jar”のファイル
[J2EE共通ディレクトリ]/ijserver/[IJServer名]/apps/[EARモジュール名] /Shared/classes配下の拡張子が“.class”のファイル

 クラスファイルを入れ替えた場合、そのクラスを参照できるモジュールのクラスがすべてオートリロードされます。クラスファイルを参照できるモジュールは、クラスローダの設定により異なります。以下にオートリロードされるモジュールのクラスを示します。

【オートリロードされるクラス】

クラスローダの設定

入れ替えるクラス

個別に配備された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ディレクトリ

Sharedディレクトリには以下の2種類があり、クラスのオートリロードの動作が異なります。

◆クラスのオートリロードの注意事項


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006