ユーザー出口は、必ず MFJUXIT という名前が付けられる (MFJUXIT 環境変数によってオーバーライドされる場合を除く) オプションです。ユーザー出口インターフェイス ブロック (
mfjdxit.cpy) によって、唯一のパラメーターとして呼び出されます。ユーザー出口には以下が含まれています。
- イベントのイベント コードと要求可能なアクションを表すアクション コードなどが含まれているヘッダー部分
- イベントを表すデータが含まれているデータ部分
mfjdxit.cpy では、すべてのイベント コード、アクション コード、および各イベントに関連付けられたデータが詳細に記述されます。
mfjdxit.cpy を調べる場合は、次のことに注意してください。
- -I- が含まれているフィールド名 (JXIT-I-size など) は、ユーザー出口への入力です。これらのフィールドは変更しないでください。
- -U- が含まれているフィールド名 (JXIT-U-PGM-alias など) は、入力と出力に使用されます。ユーザー出口へのエントリでは、これらのフィールドは適宜に設定され、場合によっては、復帰時にユーザー出口によって許容可能な値に変更されることがあります。
- 文字データは、すべて ASCII (ANSI) 形式です。NULL 値は、データ型に適した値になります。つまり、文字データの場合は空白、数値データやバイナリ データの場合はゼロです。
ユーザー出口は、イベントが発生すると呼び出されます。
ほとんどのイベントは、バッチ イニシエーター SEP で発生します。ただし次の例外があります。
- 通常のジョブでは、Event-job-ready および Event-job-stmt-info イベントは、バッチ イニシエーター SEP ではなく通常の SEP でのみ発生します。
- SSTM ジョブでは、Event-job-ready および Event-job-stmt-info イベントは、バッチ イニシエーター SEP または Admin SEP ではなくはじめの通常の SEP でのみ発生します。job-started から job-ended のイベントは、通常の SEP ごとに 1 回発生します。
- ジョブが実行を目的としたものでない場合 (つまり、ジョブに TYPRUN=COPY または TYPRUN=SCAN がある場合)や、ジョブに JCL エラーがある場合に限り、イベント Event-job-concluded は Admin SEP でのみ発生します。
JCL ユーザー出口は、そのユーザー出口の呼び出し元であるプロセス内のイベントのみ記憶できます。
何らかの理由でユーザー出口が失敗した場合は、後続のすべてのイベントに対する失敗プロセスでそのユーザー出口が無効になります。
注:
- ユーザー出口の名前は、たとえば MFJUXIT=<optional location specification>MYEXIT.int (Windows)、または UNIX であれば、MFJUXIT=<optional location specification>MYEXIT.so.のように、MFJUXIT 環境変数で名前をオーバーライドしない限り、必ず MFJUXIT という名前が付けられます。
サンプルの出口のソースが、 %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\exits (Windows)、または $COBDIR/src/enterpriseserver/exit (UNIX) に用意されています。
これをベースとして使用して、各自のニーズに合った出口をビルドすることをお奨めします。サンプル出口のソースでは、ユーザー出口インターフェイス ブロックのコピーブックを使用しています。このコピーブックのソース (mfjdxit.cpy) は、 %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\cpylib (Windows)、または $COBDIR/cpylib (UNIX) にあります。mfjdxit.cpy のリストは、『ユーザー出口インターフェイス ブロック (mfjdxit.cpy) 』の節に記載されています。
- ユーザー出口は、ASCII (ANSI) 文字セットを使用する必要があります。ユーザー出口では非メインフレーム COBOL 方言「MF」を使用することをお奨めします。
- ユーザー出口はオプションです。動的プログラム ローダーにアクセス可能などのフォルダーにも常駐でき、その他の常駐場所を MFJUXIT 環境変数によって明示的に設定することもできます。MFJUXIT 環境変数を設定し、指定されたモジュールが見つからない場合は、リージョンが正しく起動しません。
- ユーザー出口は、COBOL で記述する必要があります。
- NOOUTDD 指令は指定する必要があります。