付録B.4 ライブラリ競合回避機能
ここでは,ライブラリ競合回避機能について説明します。
(1) ライブラリ競合回避機能の概要
ライブラリ競合回避機能は,クラス・リソースをロードするときの検索順序を変更し,ユーザアプリケーションに含まれるライブラリを優先して参照できるようにする機能です。この機能を使用すると,ユーザアプリケーションに含めることができないライブラリを,ユーザアプリケーションに含めることができます。ユーザアプリケーションに含めることができないライブラリについては,「21.4 ユーザアプリケーションに含めるライブラリの注意事項」を参照してください。
- 注意事項
-
この機能を使用するときの注意事項を次に示します。
-
V9互換モードではこの機能は使用できません。
-
この機能は,デフォルトのクラスローダ構成の場合にだけ有効になります。デフォルトのクラスローダ構成については「付録B.1 デフォルトのクラスローダ構成」を参照してください。
-
ローカル呼び出し最適化時のクラスローダ構成の場合,この機能は無効になります。ローカル呼び出し最適化時のクラスローダ構成については「付録B.2 ローカル呼び出し最適化時のクラスローダ構成」を参照してください。
-
「java.」から始まるパッケージのクラスは,この機能では検索できません。
-
(2) クラス・リソースの検索順序
ライブラリ競合回避機能のクラス・リソースの検索順序を次の図に示します。
この図では,JSP以外のクラスを検索する場合の検索順序を示しています。JSP以外のクラスを検索する場合,親クラスローダに委譲します。親クラスローダでクラスが見つからなかったときも,JSPクラスローダでは検索しません。JSPのクラスを検索する場合,JSPクラスローダは,親クラスローダに委譲せずJSPクラスローダだけを検索します。
(3) クラス・リソースの検索処理
ライブラリ競合回避機能の有効・無効の設定および検索対象によって,クラス・リソースの検索処理が変わります。詳細を次の表に示します。
有効・無効の設定 |
検索対象 |
検索処理 |
---|---|---|
無効 |
クラス |
|
リソース |
|
|
有効 |
対象パッケージから始まるクラス |
|
対象パッケージ以外から始まるクラス |
|
|
対象パッケージのファイル(リソースとして取得する場合),または対象リソース |
|
|
対象パッケージのファイル(リソースとして取得する場合)と対象リソース以外 |
|
(4) 設定方法
ライブラリ競合回避機能の有効・無効の設定,対象パッケージおよび対象リソースは,J2EEサーバのusrconf.propertiesのシステムプロパティで設定します。各設定項目のシステムプロパティを次の表に示します。
設定項目 |
システムプロパティ |
---|---|
有効・無効 |
ejbserver.deploy.LibraryConflictAvoid.<J2EEアプリケーション名>.enabled |
対象パッケージ |
ejbserver.deploy.LibraryConflictAvoid.<J2EEアプリケーション名>.package |
対象リソース |
ejbserver.deploy.LibraryConflictAvoid.<J2EEアプリケーション名>.resource |
システムプロパティの詳細は,「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.3(5)(j) ejbserver.deployから始まるキー」を参照してください。
(5) 設定が有効になった場合の通知
アプリケーションクラスローダ生成時にライブラリ競合回避機能が有効な場合,ライブラリ競合回避機能が有効であることを示すメッセージ「KDJE42411-I」をアプリケーションごとにメッセージログに出力します。