ここでは、クラスローダを使用する際の注意事項について説明します。
コネクタを使用する際の注意事項
ネイティブライブラリを使用したコネクタを運用する場合、配備したInterstage Java EE 6 DASサービスから参照可能にするために、ネイティブライブラリへのパスを環境変数PATH(Solaris/LinuxではLD_LIBRARY_PATH)に設定します。
詳細は、「5.2.3 環境変数の設定」を参照してください。
Java EEアプリケーションでJNIを使用する場合の注意事項
同じNativeモジュールは、別々のクラスローダでロードすることはできません。JNIを使用するクラスがアプリケーション(EAR、ejb-jar、WAR、RAR)に含まれている場合、同じNativeモジュールを別々のクラスローダでロードするとjava.lang.UnsatisfiedLinkErrorがスローされます。
java.lang.UnsatisfiedLinkErrorがスローされた場合は、JNIを使用するクラス(nativeメソッドを実装しているクラス)をアプリケーションに含めずに、JNIを使用するクラスを共通ディレクトリに保管してください。
また、JNIを使用するクラスがアプリケーション(EAR、ejb-jar、WAR、RAR)に含まれている場合、そのアプリケーションはHotDeployを使用できません。
使用した場合は、java.lang.UnsatisfiedLinkErrorがスローされ、HotDeployに失敗する可能性があります。java.lang.UnsatisfiedLinkErrorがスローされ、HotDeployに失敗した場合は、Interstage Java EE 6 DASサービスを再起動してください。
JNIを使用するアプリケーションでHotDeployを使用する場合は、JNIを使用するクラスを共通ディレクトリに設定してください。なお、JNIを使用するクラスを入れ替える場合はInterstage Java EE 6 DASサービスを再起動してください。
WEB-INF/lib配下に保管したJARファイル内のリソースへアクセスする場合の注意事項
WEB-INF/lib配下に保管したJARファイル内のリソースにWebクラスローダのgetResoruce/getResourceAsStreamを呼び出してアクセスした場合、初回アクセス時にJARファイルがInterstage Java EE 6 DASサービスの管理するディレクトリに展開されます。そのため、JARファイル内に多くのリソースが存在すると、初回アクセス時の性能が劣化する場合があります。
本問題は該当するJARファイルをWEB-INF/lib以外に保管し、Interstage Java EE 6で使用するクラスに設定することで回避可能です。
設定方法は「3.14.4 Interstage Java EE 6で使用するクラスの設定について」を参照してください。