ECI のクライアント プログラムは、Enterprise Server と同じマシン上または物理的に異なるハードウェア上で実行できます。要求が、通信レイヤーを通して対象リージョンに送信されます。リモート サーバーにアクセスする場合、プログラムは Web Services and J2EE リスナーを介して接続します。下図は、TCP/IP を通してクライアントからリモート サーバーへの要求のパスを示しています。
共有メモリを介してローカル サーバーにアクセスする場合もあります。下図は、クライアントからローカル サーバーへの要求のパスを示します。
クライアント プログラムで ECI 呼び出しを使用して、Enterprise Server で実行する CICS アプリケーションと直接通信し、サードパーティ製ソフトウェアを完全に不要にすることができます。
CICSEXTERNALCALL などの ECI エントリ ポイントは、Windows ではダイナミック ロード ライブラリとして、UNIX と Linux プラットフォームでは呼び出し可能共有オブジェクトとして提供される、casbnccl モジュールによって公開されます。
クライアント プログラムは、CALL 文をコーディングするか、INITCALL(casbnccl) コンパイル指令を使用して、このモジュールを呼び出します。現在、casbnccl モジュールをクライアント アプリケーションにリンクする機能はありません。
この API を使用するには、通常はホスト、ポート、接続タイプ、トレース フラグを使用して接続を設定します。CommArea オブジェクトと CCLParams オブジェクトを適切な CICS プログラム名、ユーザー ID、パスワードを使用して入力すると、API によってエンタープライズ サーバーに要求が送信され、さらにサーバーから戻る ECIResponse オブジェクトを受信します。例外が発生すると、エンタープライズ サーバーから CICSException または AbendException のいずれかが返されます。
Java コードを変更して Micro Focus ECI コールを処理する方法については、Micro Focus ECI Java API で説明します。
Enterprise Server リージョンを構成して ECI を使用するには、ES_LEGACY_ECI 環境変数を Y に設定します。たとえば、ES_LEGACY_ECI=Y などです。
実行する CICS プログラムから返されるデータの量が入力データのサイズの約 2 倍を超える場合、ES_ECI_MAX_RESP 環境変数を最大予想応答サイズ (バイト単位) に設定します。たとえば、ES_ECI_MAX_RESP=70000 などです。
これらの 2 つの環境変数は相互排他的です。ただし、両方を使用した場合、ES_ECI_SOCKET がES_REGION に優先します。
これらの環境変数のどちらも使用しなかった場合、動作モードは IBM CTG のものと同じになります。この例では、要求が送信されるサーバーは、ECI パラメーター ブロックの ECI-SYSTEM-NAME 変数を通して識別され、null または空白で埋められた値を取ります。その値は、MFDS リポジトリのサーバー定義に一致する必要があります。