ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド

2.3.2 クラスローダの分離

Interstageのデフォルトの設定では、EAR間でクラスローダが分離されます。
クラスローダの分離はアプリケーション間の参照関係やアプリケーションの活性変更に影響があります。
ここでは、クラスローダの分離をカスタマイズする機能について説明します。


設定方法

クラスローダの分離方法は、Interstage管理コンソールを使用して、以下のどちらかの方法で設定します。

また、isj2eeadminコマンドで設定することも可能です。詳細は、“リファレンスマニュアル(コマンド編)”を参照してください。


想定する設定パターンは下表のようになります。

設定値

設定パターン

EAR間で分離 (デフォルト値)

EARを作成しないでejb-jarを個々に配備している場合に使用。

すべて分離

EARを作成してアプリケーションを配備している場合に使用。

分離しない

EAR間でアプリケーションを参照している場合や、システムクラスローダでEJBアプリケーションやconnectorをロードする場合に使用。
V6とクラスローダの構成が同じV6互換モード。
HotDeployは使用しない、かつInterstageV6で作成したアプリケーションを移行する場合に使用。(または、EAR間で分離、すべて分離では動作しないアプリケーションの場合)

注意

  • WebアプリケーションはWebアプリケーション間でクラスを相互に参照することはないため、設定値(“EAR間で分離”、“すべて分離”、“分離しない”)にかかわらず、すべての場合でWebアプリケーション間のクラスローダは分離されます。

  • IJServerのタイプが“WebアプリケーションとEJBアプリケーションを同一JavaVMで運用”の場合は、WebアプリケーションやEJBアプリケーションから他のIJServerに配備されたEJBアプリケーションを呼び出すことはできません。

クラスローダの分離パターン

EAR間で分離

“EAR間で分離”を選択した場合、EARの配備では、下図のようにEAR間でクラスローダが分離されます。
ejb-jar、WARの配備では、クラスローダは配備単位で分離されません。
この場合、J2EEアプリケーションの活性変更は点線で囲まれた単位で可能となります。



すべて分離

“すべて分離”を選択した場合、下図のように配備単位でクラスローダが分離されます。
この場合、J2EEアプリケーションの活性変更は点線で囲まれた単位で可能となりますが、EJBアプリケーションEJB-JAR5、EJB-JAR6の相互参照およびWebアプリケーションWAR3、WAR4からEJBアプリケーションの参照はできません。そのため、異なるアプリケーションで同じパッケージ名、クラス名のクラスを使用することができるようになります。



分離しない

“分離しない”を選択した場合、下図のように、Webアプリケーション以外のクラスはすべて“システムクラスローダ”でロードされます。
この場合、J2EEアプリケーションの活性変更はWARファイルを配備したWebアプリケーションのみが対象となります(下図の点線で囲まれた個所)。
アプリケーション間の参照はEJBアプリケーションがお互いのクラスを参照することができます。また、WebアプリケーションからすべてのEJBアプリケーションのクラスを参照することができます。