![]() |
![]() |
|
|
| |
クライアントに関する考慮事項
以下の節では、WebLogic 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、最終草案 2」(http://java.sun.com/j2ee/download.html#connectorspec)の 5.5.1 節「ConnectionFactory and Connection」を参照してください。
ConnectionFactory(クライアントと JNDI 間の対話)の取得
この節では、ConnectionFactory を使用して EIS との接続を取得する方法について説明します。詳細については、「J2EE コネクタ仕様、バージョン 1.0、最終草案 2」(http://java.sun.com/j2ee/download.html#connectorspec)の 5.4.1 節「Managed Application Scenario」を参照してください。
管理対象アプリケーションでの接続の取得
管理対象アプリケーションが res-type
変数で指定したように ConnectionFactory から EIS インスタンスとの接続を取得する際には、以下のタスクを実行します。
res-ref-name: eis/myEIS
res-type: javax.resource.cci.ConnectionFactory
res-auth: Application または Container
コード リスト 8-1 JNDI ルックアップ
//初期
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
型の接続ファクトリのインスタンスが取得されます。
getConnection
メソッドを呼び出して EIS 接続を取得します。返された接続インスタンスは、基底の物理接続へのアプリケーション レベルのハンドルを表します。アプリケーション コンポーネントは、接続ファクトリで getConnection
メソッドを複数回呼び出して、複数の接続を取得します。
javax.resource.cci.Connection cx = cxf.getConnection();
Connection
インタフェースの close メソッドを使用して接続を閉じます。
cx.close();
非管理対象アプリケーションでの接続の取得
非管理対象アプリケーションの場合、アプリケーション開発者は管理対象アプリケーションと同様のプログラミング モデルに従う必要があります。非管理対象アプリケーションでは、接続ファクトリ インスタンスのルックアップ、EIS 接続の取得、接続を使用した EIS アクセス、および接続の終了を行います。
非管理対象アプリケーションが ConnectionFactory から EIS インスタンスとの接続を取得する際には、以下のタスクを実行します。
javax.resource.cci.ConnectionFactory
インスタンスのメソッドを呼び出して、基底の EIS インスタンスとの接続を取得します。
ConnectionFactory
インスタンスは、アプリケーションから接続リクエストをデフォルトの ConnectionManager
インスタンスに委ねます。リソース アダプタは、デフォルト ConnectionManager
実装を提供します。
ConnectionManager
インスタンスは、ManagedConnectionFactory.createManagedConnection
メソッドを呼び出して、基底の EIS インスタンスとの新しい物理接続を作成します。
ManagedConnectionFactory
インスタンスは、ManagedConnection
インスタンスで表される基底の EIS との新しい物理接続を作成することによって、createManagedConnection メソッドを処理します。ManagedConnectionFactory
は、Subject インスタンスとして渡されたセキュリティ情報、すべての ConnectionRequestInfo
とコンフィグレーション済みのプロパティ(ポート番号やサーバ名など)を使用して、新しい ManagedConnection
インスタンスを作成します。
ConnectionManager
は ManagedConnection.getConnection
メソッドを呼び出して、アプリケーションレベルの接続ハンドルを取得します。getConnection
メソッドを呼び出すたびに EIS インスタンスとの新しい物理接続が作成されるわけではありません。getConnection
を呼び出すと、アプリケーションが基底の物理接続にアクセスするための一時ハンドルが作成されます。実際の基底の物理接続は、ManagedConnection
インスタンスで表されます。
ConnectionManager
インスタンスは ConnectionFactory
インスタンスへの接続ハンドルを返し、このインスタンスは接続リクエストを初期化したアプリケーションへの接続を返します。
![]() |
![]() |
![]() |