Micro Focus External Call Interface

ECI のクライアント プログラムは、Enterprise Server と同じマシン上または物理的に異なるハードウェア上で実行できます。要求が、通信レイヤーを通して対象リージョンに送信されます。リモート サーバーにアクセスする場合、プログラムは Web Services and J2EE リスナーを介して接続します。下図は、TCP/IP を通してクライアントからリモート サーバーへの要求のパスを示しています。

共有メモリを介してローカル サーバーにアクセスする場合もあります。下図は、クライアントからローカル サーバーへの要求のパスを示します。

Micro Focus External Call Interface のプログラミング

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

クライアント側サポート

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

クライアント プログラムは、CALL 文をコーディングするか、INITCALL(casbnccl) コンパイル指令を使用して、このモジュールを呼び出します。現在、casbnccl モジュールをクライアント アプリケーションにリンクする機能はありません。

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

この 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 などです。

サーバーの検索
COBOL プログラムでサーバーと通信する最も単純な方法は、Micro Focus ECI 拡張機能を使用することです。この機能は、以下の環境変数によって有効になります。
ES_REGION 8 文字のリージョン/サーバー ID。
例:
ES_REGION=myserver
共有メモリの使用量をローカル サーバーに示します。
ES_ECI_SOCKET コロンで区切られた、8 文字のリージョン/サーバー ID と Web サービス リスナー ポート (<server>:<port>)。
例:
ES_ECI_SOCKET=myserver:9001

TCP/IP の使用量をローカルまたはリモート サーバーに示します。

これらの 2 つの環境変数は相互排他的です。ただし、両方を使用した場合、ES_ECI_SOCKETES_REGION に優先します。

これらの環境変数のどちらも使用しなかった場合、動作モードは IBM CTG のものと同じになります。この例では、要求が送信されるサーバーは、ECI パラメーター ブロックの ECI-SYSTEM-NAME 変数を通して識別され、null または空白で埋められた値を取ります。その値は、MFDS リポジトリのサーバー定義に一致する必要があります。

このリポジトリの位置は、mf-client.dat ファイルを編集するか、値 <host>:<mfds-port> を取る環境変数 ES_ECI_CCITCP2 を設定することで指定できます。たとえば、以下のとおりです。
ES_ECI_CCITCP2=localhost:86
mf-client.dat ファイルは、Windows 上の Micro Focus COBOL 製品インストールの \bin および \bin64 ディレクトリと、UNIX と Linux 上の /etc に置かれています。