プログラムが、 WebSphere Application Server 以外の JNDI クライアントと相互運用し、 MQSeries からのリソースをネーム・スペースにバインドできるようにするには、追加のステップを実行する必要があります。
WebSphere Application Server V5 または V6 で稼働する EJB アプリケーションに、 WebSphere Application Server 以外の EJB クライアントからアクセスする場合、 JNDI 初期コンテキスト・ファクトリーは、WebSphere Application Server 以外の実装であることが前提となります。 この場合、デフォルトの初期コンテキストはセル・ルートです。 使用されている JNDI サービス・プロバイダーが CORBA オブジェクト URL をサポートする場合、corbaname フォーマットを使用して EJB ホームのルックアップを行うことができます。
stringified 名の構成は、オブジェクトが単一サーバーにインストールされているか、クラスターにインストールされているかによって異なります。
initialContext.lookup( "corbaname:iiop:myHost:2809#cell/nodes/node1/servers/server1/myEJB");
initialContext.lookup( "corbaname:iiop:myHost:2809#cell/clusters/myCluster/myEJB");
このルックアップは、 同じセルに構成されたすべてのネーム・サーバー・ブートストラップ・ホストおよびポートで機能します。
このルックアップは、ブートストラップ・ホストおよびポートがクラスター自体のメンバーに属す場合にも機能します。 Single Point of Failure (SPOF) を避けるには、 各クラスター・メンバーのブートストラップ・サーバー・ホストおよびポートを次のように URL にリストできます。
initialContext.lookup( "corbaname:iiop:host1:9810,:host2:9810#cell/clusters/myCluster/myEJB");
名前接頭部 cell/clusters/myCluster/ は、クラスター自体へのブートストラップの場合は必要なく、 接頭部がなくても機能します。ただし、他のクラスターの Enterprise Bean のルックアップには接頭部が 必要です。clusters コンテキストの下のネーム・バインディングは、ルックアップ中に実行されているクラスター・メンバーのサーバー・ルートに解決されるネーム・サーバーにインプリメントされます。このため、Single Point of Failure (SPOF) が回避されます。
Hashtable env = new Hashtable(); env.put(CONTEXT.PROVIDER_URL, "iiop://myHost:2809"); Context ic = new InitialContext(env); Object o = ic.lookup("cell/clusters/myCluster/myEJB");
WebSphere Application Server V5 より前のリリースでは、 MQSeries jmsadmin ツールを使用して、ネーム・スペースにリソースをバインドできました。 WebSphere Application Server V5 または V6 のネーム・スペースで使用すると、 リソースは、そのネーム・スペース内の一時的な区画内にバインドされ、 サーバー・プロセスの存続期間を超えて持続することはありません。 jmsadmin ツールを使用して MQSeries リソースをバインドする代わりに、WebSphere Application Server 管理コンソールにあるコンソール・ナビゲーション・ツリーの「リソース」からバインドします。