他サーバーインスタンスから取得したオブジェクトリファレンスを、キャッシュして再利用する機能を提供します。同名のJNDI名でJNDIネーミングサービスにアクセスされた場合には、他サーバーインスタンスにアクセスすることなくキャッシュされたオブジェクトリファレンスを返却することで、性能良くサーバーインスタンス間の連携を可能とします。キャッシュしたサーバーインスタンスが再起動されるまでキャッシュは保持されます。
IJServerクラスタにおいては、他ネーミングサービス連携機能と合わせて利用することで、他サーバーインスタンスと連携する場合においても、性能良く処理することが可能となります。
また、本機能はクライアントアプリケーションにおいても利用可能です。
注意
Enterprise JavaBeans以外(JDBC、JMS、コネクタ等)のリソースもキャッシュされます。
以下にサーバーインスタンスへの各接続方法と接続先のサーバーインスタンスに設定されたロードバランス方式によって、IJServerクラスタ内に複数サーバーインスタンスが存在した場合に各サーバーインスタンスにロードバランスされるかどうかについて説明します。○の組み合わせはロードバランスされますが、×の組み合わせはロードバランスされません。
接続方法 | オブジェクトリファレンスのキャッシュ | ロードバランス方式の指定 | ||
---|---|---|---|---|
ロードバランス機能を使用しない | EJBディスパッチャによるロードバランス | グループ管理サービスによるロードバランス | ||
クライアントにエンドポイントを指定して接続する場合 | 無効 | × | ○ | ○ |
有効 | × | ○ | ×(※1) | |
Interstage deployment descriptorのEJB参照名(<ejb-ref>タグ)に対してINS形式でサーバーインスタンスのホスト名とIIOPリスナーのポート番号と合わせてJNDI名を指定する場合 | 無効 | × | ○ | ×(※2) |
有効 | × | ○ | ×(※2) | |
他ネーミングサービス連携機能を使用する場合 | 無効 | × | ○ | ×(※2) |
有効 | × | ○ | ×(※2) |
※1)グループ管理サービスによるロードバランスでは、lookupメソッドを実行するたびに接続先のサーバーインスタンスを変更し、オブジェクトリファレンスを取得しなおすことでロードバランスを実現しています。このため、一度取得したオブジェクトリファレンスを再利用すると、ロードバランスされなくなるため、本機能は使用しないでください。
※2)グループ管理サービスに対する問い合わせは行われません。指定した接続先に先頭から順番にアクセスし、アクセスできたサーバーインスタンスのEnterprise JavaBeansを呼び出そうとします。このため、ロードバランスが行われません。
オブジェクトリファレンスのキャッシュは以下の場合には利用しないでください。
条件 | 説明 |
---|---|
参照するEnterprise JavaBeansまたは各種リソースを再配備もしくは配備解除する場合 | オブジェクトリファレンスのキャッシュ機能を使用した場合、サーバーインスタンスが停止するまでキャッシュが保持されます。このため、参照するEnterprise JavaBeansまたは各種リソースが再配備や配備解除されても、キャッシュが保持されるため不整合が発生する場合があります。 |
外部ネーミングサービスのURLを更新する場合 | オブジェクトリファレンスのキャッシュ機能を使用した場合、サーバーインスタンスが停止するまでキャッシュが保持されます。 外部ネーミングサービスのURLが別のURLに修正しても、以前設定した外部ネーミングサービスのURLから取得してキャッシュされたORが返される不整合が発生する場合があります。 |