EJBのホームインタフェースを、その都度、JNDIサーバからlookupしている場合には、名前サーバの呼び出し回数が多くなります。その結果、名前サーバの呼び出しが競合する(複数同時に行われる)可能性が高くなります。名前サーバは、デフォルトでシングルスレッドで動作します。そのため、名前サーバの呼び出しが競合した場合、待たされる方の呼び出しが遅延することになります。次の対策をとってください。
対策1) 名前サーバをマルチスレッドで動作するように変更する
次の設定変更を行い、ドメインを再起動してください。
コマンド実行例)
otxadmin>login --user admin --password adminadmin
<V9以前の場合>
otxadmin>set server.objectbrokerservice.namesv.NameServiceThreadPolicy=pool
otxadmin>set server.objectbrokerconfig.PoolThreadNumber=5
<V10以降の場合>
otxadmin>set server.corba-service.namesv.NameServiceThreadPolicy=pool
otxadmin>set server.orb-config.PoolThreadNumber=5
対策2) アプリケーションのロジックを見直す
アプリケーションでEJBのホームインタフェースを再利用すると、EJB通信における名前サーバの呼び出し回数がほとんど無くなります。
【対象製品】Application Server
【確認済みのバージョン】V6.1以降
【確認済みのエディション】すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】すべて
【コンポーネント】Object Broker
【カテゴリー】運用/設定