IBM Z and LinuxONE - Group home

#143【z/OS 3.1変更点】 JES2導入出口(2番、52番)によるジョブ関連制御ブロック(JQE/JCT)アクセス時の考慮事項

  

従来、JES2では、サブミットされたJCL JOBJOBGROUPステートメント情報の更新、削除、追加、あるいはジョブのキャンセル、パージなど、入力処理のカスタマイズを行う目的で導入出口(Exit 2Exit 52)が使用可能です。

JES2 Exit 2Exit 52の活動化有無は、$DEXITコマンドにて確認可能です。

z/OS V2R4の新機能】

■保守容易性の向上を目指し、JES2導入出口の代替として、「JES2ポリシー」機能によるカスタマイズが可能となりました。

JES2ポリシー機能は、「z22」チェックポイント・モード稼働時のみ使用可能

※ポリシー定義は「JSONオブジェクト」として、可読、編集可能な形でPDSメンバー、zFSファイル・システムに保管

※既存のJES2導入出口に含まれるカスタマイズ内容を、ポリシー定義に100%移植可能とは限りません

z/OS V2R5、または、JES2 APAR OA58190z/OS V2R4)では、ポリシー定義が「MASワード・スコープ」に変更され、$POLICY IMPORTコマンドを通じて「チェックポイント」内に保管されます。

※ポリシー定義の保管場所として、CKPT1/CKPT2両方に空きスペースがある場合に限り、「構成ディレクトリー」(Configuration Directory)を作成

z/OS 3.1の変更点】

z/OS 3.1では、新しいポリシー・タイプとして「JobCreate」がサポートされ、JES2のジョブ・キュー追加前のタイミングで、例えばジョブ名の変更などが可能となります。

z/OS 3.1時点では、次のような「5種類」の「ポリシー・タイプ」をサポート

■「JobCreate」新ポリシーのサポートに伴い、Exit 2Exit 52の呼び出しタイミングは、読み込まれたジョブのJES2ジョブ・キュー追加前に変更されました。

JCL JOBJOBGROUPステートメントの処理が終わるまで、ジョブ構造が未作成

JES2 Exit 2Exit 52で使用可能なジョブ関連の制御ブロックには、例えば「JOBID」が存在しないなど、本来のジョブ関連情報が不完全

【新ポリシーのサポートに伴う考慮事項】

z/OS 3.1では、JES2 Exit2Exit 52を使用してジョブ関連の制御ブロックにアクセスする際、JQEJCT制御ブロックの下記フィールドには、意図した情報が含まれなくなりました。

※上記フィールドは、Exitパラメータ・リスト($XPL)に含まれる、X002JQE/X052JQEフィールド、X002JCT/X052JCTフィールドからポイント

JES2ジョブ・キューに追加される前の「プロトタイプ・ジョブ」を示すため、上記フィールドは「バイナリー・ゼロ」

※最後の「JCTJOBID」フィールドは、z/OS 3.1 Upgrade Workflow V3APAR OA66928 202411月版)には未反映

■本来のジョブ関連情報が反映済の上記フィールドを扱うには、JES2ジョブ・キューへの追加後に制御を受ける、Exit 3Exit 53JOB/JOBGROUP statement accounting field scan)の代替使用を検討ください。

■詳細情報は、下記のサイトを参照ください。(z/OS 3.1 Upgrade Workflow V2

https://www.ibm.com/docs/en/zos/3.1.0?topic=SSLTBW_3.1.0/com.ibm.zos.v3r1.e0zm100/Export_zOS_V2R4_to_V3R1_Upgrade_Workflow.htm

zOS 3.1 Upgrade Workflow from zOS V2R4 - APAR OA65089

Description :zOS 3.1 Upgrade Workflow from zOS V2R4Last Updated: 2024-05-22

Step 5.8.2 : JES2: Investigate and correct the usage of job control blocks in exits 2 and 52

JCTJOBIDフィールド使用時の注意点】

z/OS 3.1では、JES2 Exit 2Exit 52の呼び出しタイングで「JOBID」が未アサインのため、「JOBID」を基にジョブの種類(バッチ、TSUSTC)を判別できなくなりました。

■代替策として、JCT制御ブロック内の「JCTJOBFL」(ジョブ・フラグ)フィールドを利用することが可能です。

■バッチ・ジョブかどうかの検査例(JCT制御ブロック)

以上