ローカル呼び出し最適化機能を利用する場合,デフォルトのクラスローダとはクラスローダ構成が異なります。ローカル呼び出し最適化機能は,別のアプリケーションのEnterprise Beanを高速で呼び出すことができる機能です。
ローカル呼び出し最適化機能を使用するには,J2EEサーバ用ユーザ定義ファイル(<Cosminexusのインストールディレクトリ>\CC\server\usrconf\ejb\<サーバ名称>\usrconf.properties)に次の設定をします。
ejbserver.rmi.localinvocation.scope=all
ローカル呼び出し最適化時のクラスローダ構成を次に示します。
図H-2 ローカル呼び出し最適化時のクラスローダ構成
各クラスローダの内容を次に示します。
- システムクラスローダ
Cosminexusのコンポーネントが提供するクラスをロードします。
- コネクタクラスローダ
単体デプロイされたリソースアダプタに含まれるクラスをロードします。J2EEサーバ内に一つだけ存在します。
- JavaBeansクラスローダ
JavaBeansリソースのクラスをロードします。
- J2EEコンテナクラスローダ
すべてのアプリケーションクラスローダの親クラスローダとなり,すべてのアプリケーションクラスローダが持つクラスパスが設定されます。J2EEコンテナクラスローダは,J2EEサーバ内に一つだけ存在します。
- アプリケーションクラスローダ
アプリケーション内のEJB-JAR,ライブラリJAR,およびリソースアダプタに含まれるクラスをクラスパスに持ちます。アプリケーションごとに存在します。ローカル呼び出し最適化時には親クラスローダであるJ2EEコンテナクラスローダにも,アプリケーションクラスローダが持つクラスパスが設定されているため,このクラスローダでは何もロードされません。
- Webアプリケーションクラスローダ
J2EEアプリケーション内のWARファイルに含まれるクラスをロードします。WARファイルごとに存在します。
- JSPクラスローダ
JSPファイルおよびタグファイルをコンパイルしたときに生成されたクラスをロードします。JSPごとに存在します。
- ポイント
- リソースアダプタのロードについて
- J2EEリソースアダプタとしてデプロイしたリソースアダプタは,コネクタクラスローダでロードされます。J2EEアプリケーションに含めて使用するリソースアダプタは,アプリケーションクラスローダでロードされます。
- 注意
- プロパティにejbserver.rmi.localinvocation.scope=allを設定して実行するときには,次の点に注意してください。
- J2EEアプリケーションが持つEJB-JARやライブラリJARは同一のクラスローダでロードされるため,同名のクラスはJ2EEアプリケーション間で共有されます。内容の異なる同名クラスが存在する場合は,Javaの仕様上,先にロードされたクラスだけが有効となります。なお,WAR内のクラスはWAR単位に存在するクラスローダによってロードされますので共有の対象外となります。
- J2EEアプリケーションのEJB-JARやライブラリJARを入れ替える場合は,J2EEアプリケーションを停止したあとにJ2EEサーバを再起動してください。再起動後に有効となります。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.