リソース参照の利点
WebSphere® Application Server では、コードによるアプリケーション・サーバー・リソース (データ・ソース や J2C 接続ファクトリーなど) の参照は、Java™ Naming and Directory Interface (JNDI) 名前空間内の リソースに直接アクセスするのではではなく、論理名を使用して行う必要があります。 これらの論理名は、リソース参照 と呼ばれます。
Application Server では、以下の理由からリソース参照を使用する必要があります。
- アプリケーション・コードが直接 JNDI ネーミング・スペース内のデータ・ソースを検索すると、 そのデータ・ソース内で維持される各接続は、アプリケーションに定義されたプロパティーを継承します。 したがって、複数のアプリケーション間で共有接続を維持するようにデータ・ソースを構成すると、 多くの例外が発生する可能性があります。 例えば、異なる接続構成を必要とするアプリケーションが、 その特定のデータ・ソースにアクセスを試みたとします。 その結果、アプリケーションは失敗しました。
- プログラマーは、 ターゲット・アプリケーション・サーバーにおける、 実際のデータ・ソース名または接続ファクトリー名を 知っている必要はありません。
- リソース参照によって、データ・ソースにデフォルトの分離レベルを設定できます。 リソース参照を使用しない場合は、 使用する JDBC Driver のデフォルトを取得します。
リソース参照を使用した次の例は、検索メソッドを使用し、
データ・ソース用のプレースホルダーを作成して、
そのデータ・ソースを呼び出します。
コードは、論理名 jdbc/Section を使用して、
JNDI サブコンテキスト java:comp/env/ 内にプレースホルダーを保管します。
したがって、jdbc/Section はリソース参照になります。
(サブコンテキスト java:comp/env/ は、WebSphere Application
Server がアプリケーション・コード内のオブジェクト参照専用に提供する
名前空間です。)
javax.sql.DataSource specificDataSource =
(javax.sql.DataSource) (new InitialContext()).lookup("java:comp/env/jdbc/Section");
//The method InitialContext()).lookup creates the logical name, or resource reference, jdbc/Section.
通常、実際のデータ・ソースは、後で管理タスクとして構成されます。論理名 jdbc/Section は、
アプリケーション・デプロイメント記述子において、
リソース参照として正式に宣言されます。
その後、以下の複数の方法を使って、実際のデータ・ソースの JNDI 名に
リソース参照を関連付けることができます。
- アプリケーションのアセンブリーを行う時点で、 データ・ソースの JNDI 名がわかっている場合は、 リソース参照の「バインディング」ページで、その名前を指定します。
- アプリケーションのデプロイメント時であれば、データ・ソースの JNDI 名を指定します。
- デプロイメントの後にアプリケーションを構成するときであれば、 リソース参照をデータ・ソースの JNDI 名にマップします。
必要なリソース・バインディングのすべてのタイプについては、アプリケーションのバインディングに関する項目を参照してください。