Interstage Application Server J2EE ユーザーズガイド |
目次 索引 |
第1部 J2EE共通編 | > 第2章 J2EEアプリケーションの設計 | > 2.3 クラスローダ |
Interstageのデフォルトの設定では、EAR間でクラスローダが分離されます。
クラスローダの分離はアプリケーション間の参照関係やアプリケーションの活性変更に影響があります。
ここでは、クラスローダの分離をカスタマイズする機能について説明します。
クラスローダの分離方法は、Interstage管理コンソールを使用して、以下のどちらかの方法で設定します。
想定する設定パターンは下表のようになります。
設定値
設定パターン
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間でクラスローダが分離されます。
ejb-jar、WARの配備では、クラスローダは配備単位で分離されません。
この場合、J2EEアプリケーションの活性変更は点線で囲まれた単位で可能となります。
“すべて分離”を選択した場合、下図のように配備単位でクラスローダが分離されます。
この場合、J2EEアプリケーションの活性変更は点線で囲まれた単位で可能となりますが、EJBアプリケーションEJB-JAR5、EJB-JAR6の相互参照およびWebアプリケーションWAR3、WAR4からEJBアプリケーションの参照はできません。そのため、異なるアプリケーションで同じパッケージ名、クラス名のクラスを使用することができるようになります。
“分離しない”を選択した場合、下図のように、Webアプリケーション以外のクラスはすべて“システムクラスローダ”でロードされます。
この場合、J2EEアプリケーションの活性変更はWARファイルを配備したWebアプリケーションのみが対象となります(下図の点線で囲まれた個所)。
アプリケーション間の参照はEJBアプリケーションがお互いのクラスを参照することができます。また、WebアプリケーションからすべてのEJBアプリケーションのクラスを参照することができます。
目次 索引 |