ここではクラスローダを使用する際の注意事項について説明します。
JDBCドライバを使用する際の注意事項
JDBCドライバは“Interstageクラスローダ”でロードする必要があります。したがってJDBCドライバは以下の場所に定義してください。
J2EEプロパティのクラスパス
ワークユニットのクラスパス
IJServerのSharedディレクトリ
定義に誤りがある場合、なんらかのエラーや例外(Exception)が発生し、JDBCドライバを使用できません。
Webアプリケーションのディレクトリ構成である“WEB-INF/lib”に、クラスパスに設定するJDBCドライバを格納しないでください。格納した場合、以下の機能が使用できない場合があります。
事前コネクト
異常時の再接続
Connectorを使用する際の注意事項
Connectorを使用する際はRARファイル内に共有ライブラリが含まれている場合があります。
その場合は、RARファイルの配備先ディレクトリをワークユニット環境設定に設定する必要があります。
Interstage管理コンソールで、[ワークユニット] > “ワークユニット名” > [環境設定]タブ > [詳細設定] > [ワークユニット設定]の以下の項目にRARファイルの配備先ディレクトリを設定してください。
パス
ライブラリパス
J2EEアプリケーションでJNIを使用する場合の注意事項
同じNativeモジュールは別々のクラスローダでロードすることはできません。JNIを使用するクラスがアプリケーション(EAR、ejb-jar、WAR、RAR)に含まれている場合、同じNativeモジュールを別々のクラスローダでロードした場合、java.lang.UnsatisfiedLinkErrorがスローされます。
java.lang.UnsatisfiedLinkErrorがスローされた場合は以下の対処を行ってください。
JNIを使用するクラス(nativeメソッドを実装しているクラス)をアプリケーションに含めずに、JNIを使用するクラスをワークユニットのクラスパスに設定、または、IJServerのSharedディレクトリに保管してください。
JNIを使用するクラスがEJBアプリケーションのクラスの場合は、クラスローダの分離を“分離しない”にすることで回避可能です。
また、JNIを使用するクラスがアプリケーション(EAR、ejb-jar、WAR、RAR)に含まれている場合、そのアプリケーションはHotDeploy/クラスのオートリロードを使用することはできません。
使用した場合は、java.lang.UnsatisfiedLinkErrorがスローされ、HotDeploy/クラスのオートリロードに失敗する可能性があります。java.lang.UnsatisfiedLinkErrorがスローされ、HotDeploy/クラスのオートリロードに失敗した場合は、IJServerを再起動してください。
JNIを使用するアプリケーションでHotDeploy/クラスのオートリロードを使用する場合は、以下の対処を行う必要があります。
JNIを使用するクラス(nativeメソッドを実装しているクラス)をアプリケーションに含めずに、JNIを使用するクラスをワークユニットのクラスパスに設定、または、IJServerのSharedディレクトリに保管してください。
なお、JNIを使用するクラスを入れ替える場合はIJServerを再起動する必要があります。