8.2. JCA の使用についての概要
JCA は、ドライバーとアプリケーションサーバーとの間の双方向通信を追加して、データベース ドライバー の概念を一般化します。ドライバーは、javax.resource.spi.ResourceAdapter で表される リソースアダプター になります。
以下の 2 つの重要なインターフェイスがあります。
-
javax.resource.spi.ManagedConnectionFactoryimplemented by a resource adapter. -
アプリケーションサーバーで実装される
javax.resource.spi.ConnectionManager
ManagedConnectionFactory インターフェイスには 2 つの目的があります。
Object createConnectionFactory(ConnectionManager cxManager)メソッドは、アプリケーションコードが使用できる指定の EIS (またはデータベースまたはメッセージブローカー) の 接続ファクトリー を生成するために使用できます。返されたオブジェクトメソッド-
汎用
javax.resource.cci.ConnectionFactory(詳細は JCA 1.6, chapter 17: Common Client Interfaceを参照) -
よく知られている
javax.sql.DataSourceまたはjavax.jms.ConnectionFactoryなどの EIS 固有の接続ファクトリー。これは、pax-transx-jdbcおよびpax-transx-jmsバンドルによって使用される 接続ファクトリー のタイプです。
-
汎用
-
アプリケーションサーバー によって使用される
javax.resource.spi.ManagedConnection ManagedConnectionFactory.createManagedConnection()メソッドでは、EIS/database/broker への実際の物理接続を作成します。
ConnectionManager は アプリケーションサーバー によって実装され、リソースアダプター によって使用されます。これは、最初に QoS 操作 (プーリング、セキュリティー、トランザクション管理) を実行し、最終的に リソースアダプター の ManagedConnectionFactory に委譲して ManagedConnection インスタンスを作成する アプリケーションサーバー です。フローは以下のようになります。
-
アプリケーションコードは、
ManagedConnectionFactory.createConnectionFactory()から返されるオブジェクトを使用して アプリケーションサーバー で作成され、公開される 接続ファクトリー を使用します。これは一般的な CCI インターフェイス (例:javax.sql.DataSource) である可能性があります。 -
この 接続ファクトリー は、独自の接続で 接続 を作成しません。代わりに、リソースアダプター固有の
ManagedConnectionFactoryを渡すConnectionManager.allocateConnection()に委譲します。 -
アプリケーションサーバー によって実装される
ConnectionManagerは、サポートするオブジェクト の作成、トランザクションプーリングの管理などを行い、最終的に渡されたManagedConnectionFactoryから 物理 (管理) 接続 を取得します。 - アプリケーションコードは、通常、リソースアダプターの特定の 物理接続 に委譲する アプリケーションサーバー によって作成されるラッパー/プロキシーであるコネクション を取得します。
以下は、アプリケーションサーバー が EIS 固有の EIS 接続ファクトリー以外の 接続ファクトリー を作成した図です。EIS (ここではデータベース) へのアクセスは javax.sql.DataSource インターフェイスを使用して行われます。ドライバーのタスクは 物理接続を提供することで、アプリケーションサーバー はプーリング/登録/セキュリティーを行うプロキシー (通常) 内でラップします。
