CICS® Transaction
Gateway は、CICS との相互作用のための共通クライアント・インターフェース (CCI) を実装する
リソース・アダプターを提供します。
共通クライアント・インターフェース
CCI は、JCA が定義する高水準インターフェースであって、
外部呼び出しインターフェース (ECI) を使用する J2EE 開発者が、
CICS サーバー上で稼働するプログラムと通信する場合に使用できます。
CCI は、次の 2 種類の個別のクラスに分かれます。
- 汎用 CCI クラス: 汎用 CCI クラスは、
CICS のような EIS への接続を要求し、その EIS 上でコマンドを実行して、
入力を渡し、出力を取得するのに使用されます。これらのクラスは、特定の EIS に固有の情報を
渡さないところから、汎用と呼ばれます。汎用 CCI クラスの例としては、
Connection、ConnectionFactory などがあります。
- CICS 固有の CCI クラス: CICS 固有のクラスは、
Java™ クライアント・アプリケーションと CICS の間で特定の情報を受け渡しするために使用されます。
CICS 固有のクラスの例としては、次のようなものがあります。
CCI を使用するプログラミング・インターフェース・モデルに従うアプリケーションには、
使用されている EIS に関係なく、共通の構造があります。JCA は、
EIS への接続を表す Connection と ConnectionFactory を定義します。
これらのオブジェクトによって、アプリケーション・サーバーは、リソース・アダプターのセキュリティー、
トランザクション・コンテキスト、および接続プールを管理することができます。アプリケーションの開始には、
まず ConnectionFactory を取得する必要があります。そこから Connection を取得することができます。
この Connection のプロパティーは、ConnectionSpec オブジェクトでオーバーライドできます。
ConnectionSpec クラスは、ECIConnectionSpec と同様 CICS 固有のクラスです。
接続が取得された後で、特定の要求を出すために Connection から Interaction を作成することができます。
Connection と同様 Interaction でも、
CICS 固有の InteractionSpec クラス (ECIInteractionSpec) によって、
カスタム・プロパティーを設定することができます。アプリケーションが Interaction を実行するには、
execute() メソッドを呼び出し、CICS 固有のレコード・オブジェクトを使用して
データを保持します。
- 接続ファクトリー: ConnectionFactory は、次の 2 つの方法で取得できます。
- 管理: アプリケーション・サーバーを使用している場合、ConnectionFactory は、
通常は、管理インターフェースによってリソース・アダプターから作成されます。
この ConnectionFactory には、そのためにカスタム・プロパティーが設定されています。
例えば、使用されるゲートウェイは、ConnectionURL として設定されます。ConnectionFactory は、作成後は、
JNDI を介して任意のエンタープライズ・アプリケーションで使用できるようになります。
このような環境を、管理環境と呼びます。管理環境では、
アプリケーション・サーバーで接続サービスの品質を管理することができます。
- 非管理: アプリケーション・サーバーを使用していない場合は、
ManagedConnectionFactory を作成して、そのカスタム・プロパティーを設定する必要があります。カスタム・プロパティーを設定すると、
ManagedConnectionFactory から ConnectionFactory を作成することができます。このような環境を、
非管理環境と呼びます。非管理環境では、
アプリケーション・サーバーで接続を管理することはできません。
CICS サーバーからデータを取得するには、J2EE アプリケーションで以下を実行します。
- ConnectionFactory オブジェクトを使用して、Connection オブジェクトを作成する。
- Connection オブジェクトを使用して、Interaction オブジェクトを作成する。
- Interaction オブジェクトを使用して、EIS でコマンドを実行する。
- Interaction と Connection を閉じる。
次の例では、J2EE CCI インターフェースを使用して、
EIS でコマンドを実行しています。
ConnectionFactory cf = [Lookup from JNDI namespace]
Connection conn = cf.getConnection();
Interaction int = conn.createInteraction();
int.execute([Input output data]);
int.close();
conn.close();