IBM Z Japan - Group home

#121【z/OS 3.1変更点】 JES2資源(TG/JOE)の消費量をジョブ単位で監視・制限(省略時活動化)

  

従来、意図的かどうかによらず(出力処理のループなど不具合事象も含めて)、ジョブ稼働時における大量SYSOUTデータの出力は、JES2スプールのスペースを強く圧迫する懸念があり、TSOログオン不可などの悪影響を及ぼす可能性があります。

$HASP050 JES2 RESOURCE SHORTAGE OF TGS - 80% UTILIZATION

$HASP355 SPOOL VOLUMES ARE FULL

 

■SYSOUTデータ大量出力の事例(z/OS V2R5)

※スプール・スペースの使用状況、および、消費量や消費スピードが大きいジョブの「トップ10」を表示可能(z/OS V2R3新機能)

【従来機能】

 

■JES2スプールへの出力制限を行う機能が、①OS(DD単位)、②JES2(バッチ・ジョブ単位)にてそれぞれ提供されています。

 

①JCL DDステートメントの「OUTLIM」パラメータ ・・・ OUTLIM=nnnnnnnn(1~16777215)

対象SYSOUTデータセットへの出力レコード数を制御し、出力処理中に「OUTLIM」パラメータ指定値に達した場合は、該当ジョブ・ステップがABEND722(RSN00000000)で処理完了

 

②JES2PARMの「ESTLNCT」ステートメント ・・・ NUM=nnnnnn|2,INT=nnnnnnn|2000,OPT=0|1|2

NUM(1~999999): $HASP375メッセージ(ESTIMATED LINES EXCEEDED)を最初に出力するタイミング(省略時値: 2000ライン)

INT(1~9999999): $HASP375メッセージ(ESTIMATE EXCEEDED BY nn LINES)を繰り返し出力するインターバル(省略時値: 2000ライン)

OPT0|1|2): OPT(1)は$HASP375メッセージの最初の出力タイミングでABEND722(RSN00000000)発生、OPT(2)はOPT(1)の処理に加えてダンプ取得、省略時値のOPT(0)は処理続行

 

■z/OS V2R5の事例

 

【z/OS 3.1の新機能】 ※JOB resource limits

 

■z/OS 3.1では、システム全体に悪影響を及ぼすようなクリティカルな資源不足(枯渇)を回避するため、「従来機能」とは別に、「TG」(スプール・スペース: Track Group)、「JOE」(出力グループ: Job Output Element)資源それぞれの消費量をジョブ単位に監視し、さらに、制限値(LIMIT)に到達した際のJES2対応方法(ACTION)が選択可能になりました。

※「従来機能」は、DD単位、バッチ・ジョブ単位の出力量に着目 ・・・ z/OS 3.1でも継続して使用可能

※z/OS 3.1新機能は、ジョブ毎に資源全体の何%消費したかを監視 ・・・ 緊急サブシステム経由で実行可能な「特権ジョブ」(z/OS V2R3新機能)には適用不可

 

■TG/JOE資源それぞれに対して、Small/Large環境どちらかを判別し、Small環境では「75%」、Large環境では「25%」を制限値(LIMIT)としてアサインします。(省略時解釈)

※TG/JOE資源の制限値(LIMIT) ・・・ 特権ジョブ(PRIVILEGED)向けに予約済の資源を除いた「NON-PRIVILEGED」用のTG/JOE資源全体に対する割合(%)

 

■制限値(LIMIT)に到達した際の対応方法(ACTION)として、NONE/WAIT/FAILいずれかを選択することが可能です。(省略時解釈: WAIT

①ACTION=NONE: JES2メッセージを出力して、対象ジョブは処理続行

➁ACTION=WAIT: JES2メッセージを出力して、対象ジョブは処理停止(スワップ・アウト状態)

③ACTION=FAIL: JES2メッセージを出力して、対象ジョブは処理失敗(例: ABEND722 RSN00000004発生)

④ACTION=DEFAULT: 「➁ACTION=WAIT」と同等 ➡ z/OS 3.1の省略時解釈は「③ACTION=WAIT

 

■JES2PARMのJOBCLASSステートメントを使用して、ジョブ・クラス毎のLIMIT/ACTIONを明示指定(カスタマイズ)することが可能です。

※$TJOBCLASSコマンドによる変更可能

RESOURCE(TG)=(LIMIT=n|DEFAULT,ACTION=NONE|WAIT|FAIL|DEFAULT)

RESOURCE(JOE)=(LIMIT=n|DEFAULT,ACTION=NONE|WAIT|FAIL|DEFAULT)

■JES2ポリシー(タイプ: JobCreate/JobInput/PreConversion/JobConversion)を使用して、ジョブ毎のLIMIT/ACTION指定が可能です。(ジョブ・クラス指定値をオーバーライド)

※TG資源: TGResLimit、TGResAction属性

※JOE資源: JOEResLimit、JOEResAction属性

 

■TG/JOE資源それぞれの制限値(LIMIT)の90%/100%に到達した場合、新規メッセージが出力されます。

※$HASP1807メッセージ ・・・ 単一ジョブで制限値(LIMIT)の90%に到達した場合(90%は固定値)

※$HASP1806メッセージ ・・・ 単一ジョブで制限値(LIMIT)の100%に到達した場合

 

【「ACTION=WAIT」指定時の挙動・対応例】 ※省略時解釈

 

■z/OS 3.1新機能は、省略時解釈として活動化されます。(ACTION=WAIT

 

■TG/JOE資源に対して$HASP1807メッセージの出力後、制限値(LIMIT)に到達すると、$HASP1806メッセージが出力されます。

※この時点で、該当ジョブにて「スワップアウト」発生(理由: DW - Detected Wait)

 

■$HASP1806メッセージ出力時は、「ジョブが所有するSPINデータセットを削除(PURGE)」、「JES2スプール・ボリュームを追加」、「ジョブをCANCEL/PURGE」などの一般的な対応に加え、制限値(LIMIT)に到達した単一ジョブに対して「RAISE_LIMITS」オペレーションを行うことが可能です。

※該当ジョブを対象に、TG/JOE資源の制限値(LIMIT)を一時的に「10ポイント」ずつ増加(TG/JOE資源ともに増加)

 

【考慮事項】

 

■単一ジョブによるTG/JOE資源の使用量が制限値(LIMIT)に到達しても、そのまま処理続行させる場合は、あらかじめ、「ACTION=WAIT」から「ACTION=NONE」パラメータ指定に変更しておく必要があります。

 

■「LIMIT=100,ACTION=NONE」パラメータ指定を行うことで、事実上の制限値(LIMIT)なし(制限しない状態)で稼働させることが可能です。

※「NON-PRIVILEGED」用のTG/JOE資源全体に対する、それぞれ90%に到達した場合、$HASP1807メッセージ出力

 

■「ACTION=FAIL」パラメータ指定の場合、例えば、SYSOUTデータを書き込み中にTG資源の制限値(LIMIT)に到達すると、「ABEND722 RSN00000004」で処理完了します。

※「RSN00000000」(従来機能)とは異なり、z/OS 3.1新機能が適用された場合は「RSN00000004」

 

■z/OS 3.1新機能によって影響を受けたジョブ($HASP1806メッセージ出力に至ったジョブ)の確認は、「$DJ(*),LIMITS_IMPACT=YES」コマンドにて可能です。

※$HASP1806メッセージは高輝度出力されず、コンソール上でスクロールされる点に注意

※「RAISE_LIMITS」オペレーションを実施したジョブは、「$DJ(*),LIMITS_RAISED=YES」コマンドにて確認可能

以上