IBM External Call Interface (ECI) と External Presentation Interface (EPI)

CICS アプリケーションのクライアント・プログラムは、BMS を使用する必要はありません。グラフィカルまたは Web ユーザー・インターフェイスとしては、Java、 Cobol、C で記述されているもの、Microsoft .NET のもとで実行するもの、または Dialog System を使用するものを利用できます。IBM ECI (External Call Interface) と EPI (External Presentation Interface) によって、CICS 以外のプログラムで CICS プログラムとトランザクションとのやり取りを実行できるようになります。

エンタープライズ・サーバは、Mainframe Subsystem エンタープライズ・サーバ・インスタンスへの標準的な ECI と EPI の呼び出しをサポートします。ECI によって、サーバの外側で実行する CICS 以外のプログラムで、所定のリージョン内の COMMAREA ベースの CICS プログラムを呼び出すことができます。また EPI によって、CICS 以外のプログラムで 3270 ベースの CICS トランザクションを開始し、関連付けられたデータを送受信することができます。ECI と EPI のいずれも、レガシーなビジネス・ロジックへのアクセスを容易にします。

ECI と EPI のクライアント・プログラムは、エンタープライズ・サーバと同じマシン上または物理的に異なるハードウェア上で実行できます。いずれの場合も、要求は Web サービスおよび J2EE リスナによって通信層を経由してターゲット・リージョンにサブミットされます。

IBM CTG (CICS Transaction Gateway) による ECI と EPI の呼び出し

エンタープライズ・サーバのもとで実行されている CICS アプリケーションと通信するには、クライアント・プログラムで ECI 呼び出しを使用します。クライアント・プログラムからの ECI 呼び出しは、IBM CICS Transaction Gateway を通じてエンタープライズ・サーバ に渡されます。

CICS クライアント側サポート
CICSEXTERNALCALL などの ECI エントリ・ポイントは、Windows ではダイナミック・ロード・ライブラリとして、UNIX と Linux プラットフォームでは呼び出し可能共有オブジェクトとして提供されるモジュールによって公開されます。プラットフォーム固有の情報については、IBM CICS Transaction Gateway のマニュアルを参照してください。

クライアント・プログラムは、必要な ECI/EPI API を公開する dll に CALL 文を追加するか、またはクライアント・モジュールを適切な .lib ファイルにリンクできます。

注:Java でプログラムを呼び出すには、IBM によって提供される Java API を使用します。
構成

名前付きエンタープライズ・サーバと指定のポートを参照するように CTG を構成する必要があり、通常は IBM CICS Transaction Gateway Configuration ツールを使用して行います。CTG による ECI と EPI 呼び出しでは CTG リスナを作成する必要があります。この作成は、該当する [Enterprise Server Administration] 画面の [Listeners] タブを使用して実行できます。必ず、[Endpoint Address] が指定された CTG ポートに対応し、[CICS Transaction Gateway] がサポートされる対話タイプとして選択されるようにします。

Micro Focus ECI エミュレーションによる ECI のサポート

クライアント・プログラムで ECI 呼び出しを使用して、エンタープライズ・サーバで実行する CICS アプリケーションと直接通信し、サードパーティ製ソフトウェアを完全に不要にすることができます。

クライアント側サポート

CICSEXTERNALCALL などの ECI エントリ・ポイントは、Windows ではダイナミック・ロード・ライブラリとして、UNIX と Linux プラットフォームでは呼び出し可能共有オブジェクトとして提供される casbnccl モジュールによって公開されます。

クライアント・プログラムがこのモジュールを呼び出すには、CALL 文をコーディングするか、または INITCALL(casbnccl) コンパイル指令を使用する必要があります。

Java クライアント・サポート
当社から、Java クライアント用 ECI API も提供されています。この API を使用することで、CTG を使用せずにエンタープライズ・サーバで実行する CICS プログラムを呼び出すことができます。拡張モード (トランザクション) または非拡張モード (トランザクション以外) を使用して、CICS プログラムを呼び出すことができます。
注:Java クライアント ECI API は、エンタープライズ・サーバへの同期呼び出しのみをサポートします。

この API を使用するには、通常はホスト、ポート、接続タイプ、トレース・フラグを使用して接続を設定します。CommArea オブジェクトと CCLParams オブジェクトを適切な CICS プログラム名、ユーザ ID、パスワードを使用して入力すると、API によってエンタープライズ・サーバに要求が送信され、さらにサーバから戻る ECIResponse オブジェクトを受信します。例外が発生すると、エンタープライズ・サーバから CICSException または AbendException のいずれかが返されます。

構成

ECI のサポートは MSS タイプ・リージョンでデフォルトで有効に構成されており、サーバでさらに構成する必要はありません。

要求の送付先となるリージョンは、ECI パラメータ・ブロックの ECI-SERVER 変数によって特定され、null またはスペースで埋められた値を取ります。この値は MFDS リポジトリのサーバ定義と一致する必要があります。

この場所は、mf-client.dat ファイルを編集するか、または環境変数 ES_ECI_CCITCP2 を設定することで指定できます。この環境変数は、<host>:<mfds-port> の値をとり、例えば、ES_ECI_CCITCP2=localhost:86 のようになります。mf-client.dat ファイルは、Windows では Micro Focus COBOL 製品をインストールした \bin\bin64 ディレクトリにあり、UNIX と Linux では /etc ディレクトリにあります。

また、環境変数 ES_ECI_SOCKET を設定することでルックアップをオーバーライドして迂回することもできます。この変数は、値<host>:<Web-Services-listener-port> を取ります。