JDBCリソースをlookupした際に指定したJDBCリソースではなくDerbyPoolを参照するJDBCリソースがlookupされる
JDBCリソースをlookupした際に指定したJDBCリソースではなくDerbyPoolを参照するJDBCリソースがlookupされる場合、以下の可能性が考えられます。
JNDIの環境ネーミングコンテキストでJDBCリソースのリソース参照名とJNDI名の対応付けが定義されていない
JNDIの環境ネーミングコンテキストでJDBCリソースのリソース参照名とJNDI名の対応付けが定義されていない場合、デフォルトのJDBCリソースに対応付けられます。
デフォルトのJDBCリソースが参照するJDBC接続プールの初期値はDerbyPoolであるため、DerbyPoolを参照するJDBCリソースがlookupされている可能性があります。
「2.14.2 環境ネーミングコンテキスト(Environment Naming Context)」を参照してJDBCリソースのリソース参照名とJNDI名の対応付けを行ってください。
JNDIを利用するクライアントアプリケーション実行時に無応答となる
JNDIを利用するクライアントアプリケーション実行時に無応答となり、かつ接続先IJServerクラスタのIIOPアクセスログにLOCATION_FORWARDのログが連続して出力されている場合、以下の可能性が考えられます。
複数NIC設定環境でIIOPリスナーのネットワークアドレスの指定が正しくない
複数NIC設定環境の場合、初期状態ではIIOPリスナーのネットワークアドレスで利用するIPアドレスが固定されません。
特定のNICを利用してIIOP通信をする場合、IIOPリスナーのネットワークアドレスに利用するNICのIPアドレスまたはホスト名を指定する必要があります。
定義の詳細は「ネットワークアドレス」を参照してください。
hostsファイルの記載が正しくない
サーバのhostsファイルで、マシンのホスト名を「127.0.0.1」に設定しないでください。
IPCOMを利用したIIOP通信の負荷分散機能を使用している場合、EJBをlookupした際にjavax.naming.NameNotFoundExceptionが発生する
以下の条件を満たしている場合、EJBをlookupした際にIIOP通信に失敗してjavax.naming.NameNotFoundExceptionが発生することがあります。
IPCOMを利用したIIOP通信の負荷分散機能を使用して、複数台のサーバへとIIOP通信の振り分けを行っている場合。かつ、
IPCOMのIIOP負荷分散の設定が、メソッド呼び出し単位の負荷分散を行うように設定されている場合。かつ、
IIOP通信クライアントの無通信監視機能の設定値がIPCOMのTCPコネクションの無通信監視時間より長い場合。かつ、
以下のa.とb.を満たした状態で、IPCOMを経由するIIOP通信を行った場合。
前回のIIOP通信を行ってからIPCOMのTCPコネクションの無通信監視時間を超過している場合。かつ、
前回のIIOP通信を行ってからIIOP通信クライアントの無通信監視機能の設定値を超過していない場合。
サーバーインスタンスとIPCOM間のIIOP通信のコネクションはIPCOMのTCPコネクションの無通信監視時間を経過した場合、IPCOMのサーバ負荷分散で使用するコネクションテーブルから解放されます。この状態でクライアント側のサーバーインスタンスから次のIIOP通信を行おうとした場合、IPCOMは新規にコネクションテーブルを作成します。その際、この通信を新規のコネクションとして新たに分散先を決定するため、前回と異なる振り分け対象のサーバに振り分けられた場合、そのサーバは該当のコネクション情報を持っていないため、IIOP通信に失敗します。その時、アプリケーションにはjavax.naming.NameNotFoundExceptionが通知されます。
クライアント側のサーバーインスタンスから次のIIOP通信を行おうとした際に、前回のIIOP通信を行ってからIIOP通信クライアントの無通信監視機能の設定値を超過していた場合、現在のコネクションを切断後、再接続します。その場合、新規コネクションを作成するため、IPCOMで振り分けられた先のサーバとのIIOP通信は成功します。
そのため、IIOP通信クライアントの無通信監視機能の設定値は、IPCOMのTCPコネクションの無通信監視時間よりも短い時間に設定してください。IIOP通信クライアントの無通信監視機能については「2.24.4 IIOP通信クライアントの無通信監視機能」を参照してください。