WebSphere Application Server Network Deployment for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

             目次と検索結果のパーソナライズ化

例: プロバイダー URL プロパティーの設定による初期コンテキストの取得

通常、JNDI クライアントは、正しい環境が既に構成されているため、 明示的にプロパティー値を設定して、 これらを InitialContext コンストラクターに渡す必要はないことを前提としています。しかし、JNDI クライアントは、 その環境で識別されたネーム・スペース以外のネーム・スペースにアクセスしなければならない場合があります。 このような場合は、InitialContext コンストラクターが使用する java.naming.provider.url (プロバイダー URL) プロパティーを明示的に設定する必要があります。 プロバイダー URL には、 初期コンテキストを取得するために、 初期コンテキスト・ファクトリーが使用できるブートストラップ・サーバー情報が入っています。 InitialContext コンストラクターに直接渡されたプロパティー値はいずれも、 その環境内の他のところで検出された同じプロパティーの設定より優先されます。

WebSphere Application Server の 初期コンテキスト・ファクトリーでは、 以下の 2 つの異なるプロバイダー URL 形式を使用できます。

CORBA オブジェクト URL は IIOP URL よりも柔軟性があり、 使用する場合の推奨 URL 形式です。 CORBA オブジェクト URL は、OMG CosNaming Interoperable Naming Specification の一部です。 例えば、corbaname URL には、 初期コンテキストおよびルックアップ名の 情報を含めることができるので、 他の初期コンテキストを明示的に取得せずに、 ルックアップ名として使用することができます。 IIOP URL は、JNDI のレガシー・フォーマットですが、 WebSphere Application Server の 初期コンテキスト・ファクトリーによって、引き続きサポートされています。

以下の例は、これらの URL の使用法を示しています。

CORBA オブジェクト URL の使用

次の例は、CORBA オブジェクト 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");
Context initialContext = new InitialContext(env);
...

複数のネーム・サーバー・アドレスを持つ CORBA オブジェクト URL の使用

CORBA オブジェクト URL は、 複数のブートストラップ・アドレスを持つことができます。 この機能は、 サーバー・クラスターから初期コンテキストを取得しようとするときに使用できます。 URL 内のクラスターのすべてのサーバーに、ブートストラップ・アドレスを 指定することができます。少なくとも 1 つのサーバーが実行されている場合、オペレーションは正常に 処理され、Single Point of Failure (SPOF) を回避できます。アドレス・リストの処理は、必ずしも所定の順序で行われるとは限りません。 例えば、 リストの 1 番目のブートストラップ・アドレスのサーバーが使用可能であったとしても、 初期コンテキストを取得するのに 2 番目のブートストラップ・アドレスが使用される場合があります。

非 z/OS システム上のサーバーを解決する複数のアドレスを持つプロバイダー URL は、ノード・エージェント・プロセスに対するブートストラップ・アドレスを含むことができません。 URL には、同じクラスターのメンバーのブートストラップ・アドレスのみが含まれる必要があります。 そうでない場合は、誤った振る舞いが発生する可能性があります。 z/OS オペレーティング・システム上で実行されているサーバーを解決するとき、URL はノード・エージェント・プロセスに対するブートストラップ・アドレスを含むことができます。

以下の例は、複数のアドレスを持つ 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");
// All of the servers in the provider URL below are members of
// the same cluster.
env.put(Context.PROVIDER_URL, "corbaloc::myhost1:9810,:myhost1:9811,:myhost2:9810");
Context initialContext = new InitialContext(env);
...

WebSphere Application Server 以外の JNDI 実装から CORBA オブジェクト URL を使用する

CosNaming JNDI プラグイン実装の初期コンテキスト・ファクトリー (WebSphere Application Server の 初期コンテキスト・ファクトリーを除く) は、 ほとんどの場合、オブジェクト・キー NameService を使用して、 初期コンテキストを取得します。 このようなコンテキスト・ファクトリーを使用して、WebSphere Application Server ネーム・サーバーから初期コンテキストを取得する場合、 初期コンテキストはセル・ルート・コンテキストになります。 サーバーに関連した EJB ホームなどのシステム成果物は、サーバーのサーバー・ルート・コンテキストの下にバインドされ、JNDI オペレーションで使用される名前は修飾されている必要があります。 相対名を使用する場合、初期コンテキストが、ターゲット・オブジェクトのバインドされているサーバー・ルート・コンテキストであることを確認してください。サーバー・ルート・コンテキストを初期コンテキストにするには、オブジェクト・キー NameServiceServerRoot を使用して corbaloc プロバイダー URL を指定します。

この例の CORBA オブジェクト・タイプ URL は、 WebSphere Application Server 以外の JNDI 実装のものです。 この例では、WebSphere Application Server 以外の JNDI 実装によって、CORBA オブジェクト URL が 完全にサポートされていることが前提となります。 オブジェクト・キー NameServiceServerRoot は、初期コンテキストが、指定したサーバーのサーバー・ルート・コンテキストになるように指定します。

...
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
...
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
      "com.somecompany.naming.TheirInitialContextFactory");
env.put(Context.PROVIDER_URL, "corbaname:iiop:myhost.mycompany.com:9810/NameServiceServerRoot");
Context initialContext = new InitialContext(env);
...

修飾名が指定された場合は、NameService のデフォルト・キーを使用することができます。

IIOP URL の使用

IIOP タイプの URL は、レガシー・フォーマットであり、CORBA オブジェクト URL ほど柔軟性はありません。 しかし、このタイプの URL はまだサポートされています。 以下の例は、プロバイダー URL として IIOP タイプの 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, "iiop://myhost.mycompany.com:2809");
Context initialContext = new InitialContext(env);
...



参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 8:28:52 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rnam_example_prop2.html