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 リスナーによって通信層を経由してターゲット リージョンにサブミットされます。
エンタープライズ サーバーのもとで実行されている CICS アプリケーションと通信するには、クライアント プログラムで ECI 呼び出しを使用します。クライアント プログラムからの ECI 呼び出しは、IBM CICS Transaction Gateway を通じてエンタープライズ サーバー に渡されます。
クライアント プログラムは、必要な ECI/EPI API を公開する dll に CALL 文を追加するか、またはクライアント モジュールを適切な .lib ファイルにリンクできます。
名前付きエンタープライズ サーバーと指定のポートを参照するように CTG を構成する必要があり、通常は IBM CICS Transaction Gateway Configuration ツールを使用して行います。CTG による ECI と EPI 呼び出しでは CTG リスナーを作成する必要があります。この作成は、該当する [Enterprise Server Administration] 画面の [Listeners] タブを使用して実行できます。必ず、[Endpoint Address] が指定された CTG ポートに対応し、[CICS Transaction Gateway] がサポートされる対話タイプとして選択されるようにします。
クライアント プログラムで ECI 呼び出しを使用して、エンタープライズ サーバーで実行する CICS アプリケーションと直接通信し、サードパーティ製ソフトウェアを完全に不要にすることができます。
CICSEXTERNALCALL などの ECI エントリ ポイントは、Windows ではダイナミック ロード ライブラリとして、UNIX と Linux プラットフォームでは呼び出し可能共有オブジェクトとして提供される casbnccl モジュールによって公開されます。
クライアント プログラムがこのモジュールを呼び出すには、CALL 文をコーディングするか、または INITCALL(casbnccl) コンパイル指令を使用する必要があります。
この 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> を取ります。