|
概要
$WHEN文を使用して逐次起動型ジョブのJCLを作成する時に、ENDJOB直前のステップが実行されない場合、ジョブ終了通知ステップが自動生成されません。
その結果、実際は「正常終了」している場合でもジョブ終了通知が自動生成できず、ジョブステータスが「実行中」のままになります。
詳細
NISMAIL/MMCFでは、実行するジョブのJCLを作成する時にMMCF/DCFユーティリティを使用します。MMCF/DCFユーティリティを使用した場合、ジョブの実行結果について、最終ステップでMMCFに「正常終了」/「異常終了」を通知する必要があります。
実行するジョブが逐次起動型ジョブの場合は、JCLの最終ステップにジョブの終了を通知するプログラムを自動生成してからジョブの実行を掛けています。
そのため、JCLで$WHEN文を使用して逐次起動型ジョブのJCLを作成する時に、ENDJOB直前のステップが実行されない場合、ジョブ終了通知ステップが自動生成されません。
<現象が起きるJCLの記載例>
|
¥JOB ~;
¥MMCFUSE ~;
¥MMCFSTERM;
¥STEP ~;
¥ENDSTEP ~;
¥WHEN STATUS,NORMAL,JUMP,ENDJOB; //ここでジョブ終了
¥MMCFSTERM;
←自動挿入「JTM000: ¥MMCFCFTRM;」
//ENDJOBにジャンプするためジョブ終了通知ステップは実行されない
¥ENDJOB;
|
ジョブの実行結果がMMCFに通知されない場合、実際は正常終了している場合でもジョブステータスが「実行中」のままになります。
対策
ENDJOB直前で、最終ステップを必ず実行するように記載して下さい。
<ラベルを使用した対処例>
|
¥JOB ~;
¥MMCFUSE ~;
¥MMCFSTERM;
¥STEP ~;
¥ENDSTEP ~;
¥WHEN STATUS,NORMAL,JUMP,JOBEND; //最終ステップ(JOBEND ラベル)へジャンプ
¥MMCFSTERM;
JOBEND://最終ステップの実行(ジョブ終了通知を実行するためのラベル)
¥COMM JOB LABEL;
←自動挿入「JTM000:¥MMCFCFTRM 」// ジョブ終了通知ステップが実行される
¥ENDJOB; |
状況
本件につきましては、制限事項とさせて頂きます。
|