FAQ

同一のWebアプリケーションサーバー上に複数のCreateFormLib.jarを配置できますか?

公開日:2007/10/10

  • V9
  • V8
  • V7
  • V6
  • V5

Question

Webアプリケーションサーバーで複数のCreateFormLib.jarを配置すると「2006」のエラーコードが発生する。


Answer

「2006」のエラーコードは、ネイティブライブラリのロードに失敗したことを示します。
このエラーが発生する原因はいくつか考えられますが、Webアプリケーションで実行する時のみ、このエラーが発生するという場合は、「CreateFormLib.jar」がアプリケーションサーバー上で複数のクラスローダからロードされている可能性があります。
「CreateFormLib.jar」を同時に複数のクラスローダからロードさせることはできません。
これは、JNI(Java Native Interface)の仕様による制限です。

この現象が発生するケースは、主に以下の2種類が考えられます。

1.アプリケーションサーバー上に複数の「CreateFormLib.jar」が存在する場合
アプリケーションサーバー上に複数の「CreateFormLib.jar」が存在し、それぞれ別のWebアプリケーションからロードされている場合、上記のJNIの仕様によりライブラリのロードに失敗することがあります。
その場合は、「CreateFormLib.jar」をサーバー上の共通の場所に配置し、各Webアプリケーションで共用するようにしてください。

2.Webアプリケーションの再配置を行った場合
アプリケーションサーバーの実装にもよりますが、一般的にアプリケーションサーバーを起動したままWebアプリケーションの再配置を行うとクラスローダも更新されます。
Webアプリケーション内に「CreateFormLib.jar」を含めている場合、更新前のクラスローダと更新後のクラスローダのそれぞれから「CreateFormLib.jar」がロードされた状態になるため、ライブラリが正常にロードできなくなります。
この場合は、アプリケーションサーバーの再起動を行う必要があります。
(「CreateFormLib.jar」をアプリケーションサーバー上の共通の場所に配置している場合は、アプリケーションサーバーを再起動する必要はありません。)

この質問・回答は役に立ちましたか?

このページのよい点、悪い点を教えてください!FAQ改善の参考とさせていただきます。

  • 個人情報は入力されないようご注意ください。
    弊社からの回答をご希望の場合は、画面上部のメニューより「お問い合わせ」をご利用ください。
  • 最後に「送信」を押すことでコメントが送信されます。

検索