8.2. JCA の使用についての概要

JCA は、ドライバーとアプリケーションサーバーとの間の双方向通信を追加して、データベース ドライバー の概念を一般化します。ドライバーは、javax.resource.spi.ResourceAdapter で表される リソースアダプター になります。

以下の 2 つの重要なインターフェイスがあります。

  • javax.resource.spi.ManagedConnectionFactory implemented 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 インスタンスを作成する アプリケーションサーバー です。フローは以下のようになります。

  1. アプリケーションコードは、ManagedConnectionFactory.createConnectionFactory() から返されるオブジェクトを使用して アプリケーションサーバー で作成され、公開される 接続ファクトリー を使用します。これは一般的な CCI インターフェイス (例: javax.sql.DataSource) である可能性があります。
  2. この 接続ファクトリー は、独自の接続で 接続 を作成しません。代わりに、リソースアダプター固有の ManagedConnectionFactory を渡す ConnectionManager.allocateConnection() に委譲します。
  3. アプリケーションサーバー によって実装される ConnectionManager は、サポートするオブジェクト の作成、トランザクションプーリングの管理などを行い、最終的に渡された ManagedConnectionFactory から 物理 (管理) 接続 を取得します。
  4. アプリケーションコードは、通常、リソースアダプターの特定の 物理接続 に委譲する アプリケーションサーバー によって作成されるラッパー/プロキシーであるコネクション を取得します。

以下は、アプリケーションサーバー が EIS 固有の EIS 接続ファクトリー以外の 接続ファクトリー を作成した図です。EIS (ここではデータベース) へのアクセスは javax.sql.DataSource インターフェイスを使用して行われます。ドライバーのタスクは 物理接続を提供することで、アプリケーションサーバー はプーリング/登録/セキュリティーを行うプロキシー (通常) 内でラップします。

diag d19ebefefdbf2bac343521fa48cab709