ナビゲーションをスキップ

WebLogic J2EE コネクタ アーキテクチャ

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

クライアントに関する考慮事項

以下の節では、J2EE コネクタ アーキテクチャのクライアントに関する考慮事項について説明します。

 


Common Client Interface (CCI)

EIS にアクセスするためのアプリケーション コンポーネントが使用するクライアント API は、次のように定義されます。

CCI は、EIS にアクセスするための共通クライアント API です。CCI は、エンタープライズ アプリケーション統合 (EAI) およびエンタープライズ ツール ベンダを対象としています。

J2EE コネクタ アーキテクチャは EIS アクセス用の Common Client Interface (CCI) も定義します。CCI では、アプリケーション コンポーネント用の標準クライアント API を定義します。アプリケーション コンポーネントおよび EAI フレームワークは、CCI を使用することにより、異種 EIS 間の対話処理を制御できます。

 


ConnectionFactory と接続

接続ファクトリは EIS インスタンスに接続するためのパブリック インタフェースで、ConnectionFactory はリソース アダプタによって提供されるインタフェースです。アプリケーションは、JNDI ネームスペースで ConnectionFactory インスタンスをルックアップし、それを使って EIS 接続を取得します。

J2EE コネクタ アーキテクチャの目標の 1 つは、CCI と EIS 固有のクライアント API 間で一貫したアプリケーション プログラミング モデルをサポートすることです。このモデルを実現するために、ConnectionFactory インタフェースと Connection インタフェースの両方を対象としたインタフェース テンプレートとして指定されている設計パターンを使用します。

この設計パターンの詳細については、「J2EE コネクタ仕様、バージョン 1.0、最終リリース」(http://java.sun.com/j2ee/download.html#connectorspec) の 5.5.1 節「ConnectionFactory and Connection」を参照してください。

 


ConnectionFactory (クライアントと JNDI 間の対話) の取得

この節では、ConnectionFactory を使用して EIS との接続を取得する方法について説明します。詳細については、「J2EE コネクタ仕様、バージョン 1.0、最終リリース」(http://java.sun.com/j2ee/download.html#connectorspec) の 5.4.1 節「Managed Application Scenario」を参照してください。

管理対象アプリケーションでの接続の取得

管理対象アプリケーションが res-type 変数で指定したように ConnectionFactory から EIS インスタンスとの接続を取得する際には、以下のタスクを実行します。

  1. アプリケーション アセンブラまたはコンポーネント プロバイダが、デプロイメント記述子のメカニズムを使用して、アプリケーション コンポーネントに関する接続ファクトリの要件を指定します。次に例を示します。
  2. リソース アダプタのデプロイ担当者が、リソース アダプタのコンフィグレーション情報を設定します。
  3. アプリケーション サーバが、コンフィグレーション済みのリソース アダプタを使用して、基底の EIS との物理接続を作成します。リソース アダプタのパッケージ化とデプロイメントの詳細については、「J2EE コネクタ仕様、バージョン 1.0、最終リリース」(http://java.sun.com/j2ee/download.html#connectorspec) の第 10 章を参照してください。
  4. アプリケーション コンポーネントは、JNDI インタフェースを使用して、コンポーネントの環境内で接続ファクトリのインスタンスをルックアップします。

コード リスト 7-1JNDI ルックアップ

//初期 JNDI ネーミング コンテキストを取得する
Context initctc = new InitialContext();
// JNDI ルックアップを実行して、接続ファクトリを取得する
javax.resource.cci.ConnectionFactory cxf = 
	(javax.resource.cci.ConnectionFactory)
		initctx.lookup("java:comp/env/eis/MyEIS");

メソッド NamingContext.lookup で渡される JNDI 名は、デプロイメント記述子の res-ref-name 要素で指定されているものと同じです。JNDI ルックアップによって、res-type 要素の指定のとおり、java.resource.cci.ConnectionFactory 型の接続ファクトリのインスタンスが取得されます。

  1. アプリケーション コンポーネントは、接続ファクトリで getConnection メソッドを呼び出して EIS 接続を取得します。返された接続インスタンスは、基底の物理接続へのアプリケーション レベルのハンドルを表します。アプリケーション コンポーネントは、接続ファクトリで getConnection メソッドを複数回呼び出して、複数の接続を取得します。
	javax.resource.cci.Connection cx = cxf.getConnection();
  1. アプリケーション コンポーネントは、返された接続を使用して、基底の EIS にアクセスします。
  2. 接続を使い終わると、コンポーネントは Connection インタフェースの close メソッドを使用して接続を閉じます。
	cx.close();
  1. アプリケーション コンポーネントが割り当てられた接続を使用後に閉じなかった場合、その接続は未使用の接続と見なされます。アプリケーション サーバは、未使用の接続のクリーンアップを管理します。

非管理対象アプリケーションでの接続の取得

非管理対象アプリケーションの場合、アプリケーション開発者は管理対象アプリケーションと同様のプログラミング モデルに従う必要があります。非管理対象アプリケーションでは、接続ファクトリ インスタンスのルックアップ、EIS 接続の取得、接続を使用した EIS アクセス、および接続の終了を行います。

非管理対象アプリケーションが ConnectionFactory から EIS インスタンスとの接続を取得する際には、以下のタスクを実行します。

  1. アプリケーション クライアントは、(JNDI ルックアップで返される) javax.resource.cci.ConnectionFactory インスタンスのメソッドを呼び出して、基底の EIS インスタンスとの接続を取得します。
  2. ConnectionFactory インスタンスは、アプリケーションから接続リクエストをデフォルトの ConnectionManager インスタンスに委ねます。リソース アダプタは、デフォルト ConnectionManager 実装を提供します。
  3. ConnectionManager インスタンスは、ManagedConnectionFactory.createManagedConnection メソッドを呼び出して、基底の EIS インスタンスとの新しい物理接続を作成します。
  4. ManagedConnectionFactory インスタンスは、ManagedConnection インスタンスで表される基底の EIS との新しい物理接続を作成することによって、createManagedConnection メソッドを処理します。ManagedConnectionFactory は、Subject インスタンスとして渡されたセキュリティ情報、すべての ConnectionRequestInfo とコンフィグレーション済みのプロパティ (ポート番号やサーバ名など) を使用して、新しい ManagedConnection インスタンスを作成します。
  5. ConnectionManager は ManagedConnection.getConnection メソッドを呼び出して、アプリケーションレベルの接続ハンドルを取得します。getConnection メソッドを呼び出すたびに EIS インスタンスとの新しい物理接続が作成されるわけではありません。getConnection を呼び出すと、アプリケーションが基底の物理接続にアクセスするための一時ハンドルが作成されます。実際の基底の物理接続は、ManagedConnection インスタンスで表されます。
  6. ConnectionManager インスタンスは ConnectionFactory インスタンスへの接続ハンドルを返し、このインスタンスは接続リクエストを初期化したアプリケーションへの接続を返します。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次