Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理ガイド

Java Naming and Directory Interface (JNDI) について

この節では、Java Naming and Directory Interface (JNDI) について説明します。JNDI は、さまざまな種類のネーミングおよびディレクトリサービスにアクセスするための API (Application Programming Interface) です。J2EE コンポーネントは、JNDI 検索メソッドを起動することによってオブジェクトを検出します。

この節では、次の項目について説明します。

JNDI 名とリソース

JNDI は、Java Naming and Directory Interface API の略語です。API を呼び出すことにより、アプリケーションはリソースとほかのプログラムオブジェクトを検出します。リソースとは、データベースサーバーやメッセージングシステムなどのシステムへの接続を提供するプログラムオブジェクトです。JDBC リソースはデータソースと呼ばれる場合もあります。それぞれのリソースオブジェクトは人間が理解しやすい JNDI 名という一意の名前で識別されます。リソースオブジェクトと JNDI 名は、Application Server に含まれているネーミングおよびディレクトリサービスによって相互にバインドされています。新しいリソースを作成すると、JNDI に新しい名前とオブジェクトのバインドが入力されます。

J2EE ネームサービス

JNDI 名は人間が理解しやすいオブジェクトの名前です。これらの名前は、J2EE サーバーが提供するネームサービスとディレクトリサービスによってオブジェクトにバインドされます。J2EE コンポーネントは JNDI API を介してこのサービスにアクセスするので、通常オブジェクトはその JNDI 名を使用します。たとえば、PointBase データベースの JNDI 名は jdbc/Pointbase となります。Application Server は、起動時に設定ファイルから情報を読み込み、JNDI データベース名を自動的に名前空間に追加します。

J2EE アプリケーションクライアント、Enterprise JavaBeans、および Web コンポーネントは、JNDI ネーミング環境にアクセスする必要があります。

アプリケーションコンポーネントのネーミング環境は、配備またはアセンブリの際に、アプリケーションコンポーネントのビジネスロジックのカスタマイズを可能にするメカニズムです。このアプリケーションコンポーネントの環境を使用することにより、アプリケーションコンポーネントのソースコードにアクセスしたり、このソースコードを変更したりせずに、アプリケーションコンポーネントをカスタマイズできます。

J2EE コンテナはアプリケーションコンポーネントの環境を実装し、この環境をアプリケーションコンポーネントのインスタンスに JNDI ネーミングコンテキストとして提供します。アプリケーションコンポーネントの環境は次のとおり使用されます。

各アプリケーションコンポーネントは、自身の一連の環境エントリを定義します。同じコンテナ内のすべてのアプリケーションコンポーネントのインスタンスは、同じ環境エントリを共有します。アプリケーションコンポーネントのインスタンスは、実行時に環境を変更することはできません。

ネーミング参照とバインディング情報

リソース参照は、リソース用にコード化されたコンポーネントの名前を識別する配備記述子の要素です。具体的には、コード化された名前はリソースの接続ファクトリを参照します。次の節で説明する例では、リソース参照名は jdbc/SavingsAccountDB です。

リソースの JNDI 名とリソース参照名とは同じではありません。このネーミングへのアプローチでは、配備前に 2 つの名前をマップする必要がありますが、同時にコンポーネントをリソースから分離します。この分離により、あとでコンポーネントが別のリソースにアクセスする必要があっても、名前を変更する必要がなくなります。この柔軟性により、既存のコンポーネントから J2EE アプリケーションを簡単にアセンブルすることが可能になります。

次の表には、Application Server が使用する J2EE リソースの JNDI 検索と関連する参照が一覧表示されています。

表 6–1 JNDI 検索と関連する参照

JNDI 検索名 

関連する参照 

java:comp/env

アプリケーション環境エントリ 

java:comp/env/jdbc

JDBC データソースリソースマネージャー接続ファクトリ 

java:comp/env/ejb

EJB 参照 

java:comp/UserTransaction

UserTransaction 参照 

java:comp/env/mail

JavaMail セッション接続ファクトリ 

java:comp/env/url

URL 接続ファクトリ 

java:comp/env/jms

JMS 接続ファクトリと送信先 

java:comp/ORB

アプリケーションコンポーネント間で共有された ORB インスタンス