サーバーごとに独自のサーバー・ルート・コンテキストがあり、 サーバーへのブートストラッピング時に、 サーバー・ルートはデフォルトの初期 JNDI コンテキストになります。EJB ホームなどのシステム成果物が ここでバインドされるため、 ほとんどの場合、このデフォルトが、必要とされる初期コンテキストです。 ただし、 その他にもルート・コンテキストが存在し、 ここに当該バインディングが含まれている場合もあります。 プロバイダー URL を指定して、他のルート・コンテキストを選択することができます。
他のルート・コンテキストを選択するための例を、以下で紹介します。
ブートストラップ・サーバーにいくつかのオブジェクト・キーが登録されています。 これを使用して、 初期コンテキストとして使用されるルート・コンテキストを選択できます。 CORBA オブジェクト URL オブジェクト・キーで特定のルート・コンテキストを選択するには、 オブジェクト・キーを該当する値に設定してください。 デフォルトのオブジェクト・キーは NameService です。 JNDI を使用して、 サーバー・ルート・コンテキストを選択できます。 以下の表は、 各種ルート・コンテキストおよびそれに対応するオブジェクト・キーをリストしています。
ルート・コンテキスト | CORBA オブジェクト URL オブジェクト・キー |
---|---|
サーバー・ルート | NameServiceServerRoot |
セル・パーシスタント・ルート | NameServiceCellPersistentRoot |
セル・ルート | NameServiceCellRoot |
ノード・ルート | NameServiceNodeRoot |
以下の例は、初期コンテキストとしてセル・パーシスタント・ルート・コンテキストを選択するために、オブジェクト・キーを設定して corbaloc URL を使用する方法を示しています。
... import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; ... Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"); env.put(Context.PROVIDER_URL, "corbaloc:iiop:myhost.mycompany.com:2809/NameServiceCellPersistentRoot"); Context initialContext = new InitialContext(env); ...
ネーム・スペース・ルート・プロパティー設定を InitialContext コンストラクターに渡して、 初期ルート・コンテキストを選択することもできます。 通常は、前述のオブジェクト・キー設定で十分です。 プロパティー設定の方が望ましい場合もあります。 例えば、ルート・コンテキスト・プロパティーは、 サーバー・ルートが初期コンテキストとして使用されているアプリケーションに対して透過となるように、Java 起動時に設定できます。 デフォルトのサーバー・ルート・プロパティー設定は defaultroot であり、 これにより、サーバー・ルート・コンテキストが選択されます。
ルート・コンテキスト | ネーム・スペース・ルート・プロパティーの値 |
---|---|
サーバー・ルート | bootstrapserverroot |
セル・パーシスタント・ルート | cellpersistentroot |
セル・ルート | cellroot |
ノード・ルート | bootstrapnoderoot |
初期コンテキスト・ファクトリーでは、プロバイダー URL に NameService 以外のオブジェクト・キーが含まれている場合、ネーム・スペース・ルート・プロパティーを無視します。
以下の例は、 初期コンテキストとしてセル・パーシスタント・ルート・コンテキストを選択するための、 ネーム・スペース・ルート・プロパティーの使用法を示しています。 プロパティー名および値をハード・コーディングする代わりに、 使用可能な定数が使用されていることに注意してください。
... import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import com.ibm.websphere.naming.PROPS; ... Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"); env.put(Context.PROVIDER_URL, "corbaloc:iiop:myhost.mycompany.com:2809"); env.put(PROPS.NAME_SPACE_ROOT, PROPS.NAME_SPACE_ROOT_CELL_PERSISTENT); Context initialContext = new InitialContext(env); ...