IBM Z Japan - Group home

#135【z/OS V2R4変更点】 テープ・アンロード処理がジョブ終了時に行われる場合の考慮事項(RETAIN/PASSオプション使用時)

  

従来、①、②のようなデータセットは、同一ジョブの後続ステップにて再使用することを意図するため、それらを含むテープ・ボリュームは、ステップ終了処理(ステップ・アンアロケーション)でもUNLOADされず、ジョブ・ステップを跨ってマウント状態を維持しようとします。

DISP処理に従い「PASS」されたデータセット ・・・ DISP=(XXX,PASS)

➁アロケーション時のVOLUMEパラメータで「RETAIN」オプションを指定したデータセット ・・・ VOLUME=(,RETAIN)

また、テープ・データセット①、②が後続ステップにて再使用されない状況が発生すると、最終ステップ終了時点でもボリュームがマウント状態となる可能性があり、その場合はジョブ終了処理(ジョブ・アンアロケーション)にてテープ・ボリュームがUNLOADされます。

※最終ステップの終了処理(ステップ・アンアロケーション)後に、ジョブ終了処理(ジョブ・アンアロケーション)が行われます

※通常、あるテープ・データセットを使用する最後のジョブ・ステップ(DDステートメント)では、①PASS②RETAINパラメータ指定を行わず、ステップ終了処理(ステップ・アンアロケーション)にてテープ・ボリュームをUNLOADします

z/OS V2R3までの課題】

■通常のステップ終了処理ではなく、前述のようなジョブ終了処理にてテープ・ボリュームがUNLOADされる場合、z/OS V2R3以前では、そのUNLOAD処理が完了するまで(IEF234Eメッセージ)、次のような事象発生が知られています。

(事象①)同一システム内でテープ・データセットを使用するジョブ・ステップ(別ジョブ)が開始できない(UNLOAD処理中の資源とは無関係)

(事象②)シスプレックス(テープ装置を共用するATS環境)の他メンバーで稼働するジョブ・ステップが対象資源を必要とする場合、IEF474Iメッセージ出力を伴いジョブが失敗する(IEF453I JOB FAILED - JCL ERROR

IEF474I jobname stepname ddname - UNIT OR VOLUME IN USE BY SYSTEM FUNCTION - CANNOT BE ALLOCATED

IEF272I jobname stepname - STEP WAS NOT EXECUTED.

■特に(事象②)が発生した場合、ジョブの再実行(リラン)を必要とするため、それを回避するための機能改善が要望されていました。

z/OS V2R4の変更点】

z/OS V2R4では、スループット向上を目指した機能改善に伴い、ジョブ終了処理におけるテープ・ボリュームのUNLOADと、同一システム内でテープ・データセットを使用するジョブ・ステップ(別ジョブ)の開始がオーバラップ可能になりました。

※先行ジョブでのUNLOAD完了(IEF234Eメッセージ)を待たずとも、テープ・データセットを使用するジョブ・ステップ(別ジョブ)が開始可能

■ジョブ終了処理にてテープ・ボリュームがUNLOAD中に、シスプレックス(テープ装置を共用するATS環境)の他メンバーで稼働するジョブ・ステップが対象資源を必要とする場合、リカバリー・アロケーション(IEF238D WTORメッセージ出力)を通じて、特定ボリュームまたは装置を待機することが可能になりました。

※ジョブの再実行(リラン)が回避可能

【考慮事項】

z/OS V2R4以降では、先行ジョブの終了処理にてテープ・ボリュームのUNLOAD中に、それと同一のテープ・ボリュームを必要とするジョブ・ステップ(別ジョブ)が開始した場合、リカバリー・アロケーション(IEF238D WTORメッセージ)が発生し、オペレータの応答が求められます。

IEF238D jobname - REPLY 'WAIT' OR 'CANCEL'.

z/OS V2R3までは、先行ジョブ終了時のUNLOAD処理中、同一システム内でテープ・データセットを使用するジョブ・ステップ(別ジョブ)が開始できないため、同一事象は発生せず

IEF238D WTORメッセージへの応答遅延は、アロケーション機能の観点では好ましくないため、z/OS V1R10以降、省略時解釈として90秒ごとに高輝度(赤色)のリマインダー・メッセージIEF882E(宛先コード: 1)が出力されます。

IEF882E jobname stepname IS WAITING FOR A REPLY TO IEF238D

z/OS V1R11以降、PARMLIB(ALLOCxx)メンバーの「SYSTEM REMIND_INTV」ステートメントにて、リマインダー・メッセージの出力頻度をカスタマイズ可能(10秒~999秒、0指定はメッセージ出力せず)

【挙動変化の発生事例】

z/OS V2R3からV2R5へ移行時、IEF238Dリカバリー・アロケーションの発生例(同一システムで稼働するJOB1/JOB2

(移行前)※z/OS V2R3

・投入済みの後続ジョブ(JOB2)は、先行ジョブ(JOB1)終了時のUNLOAD処理が完了(IEF234E)するまで、ジョブ・ステップを開始(IEF403I)不可

JOB2のジョブ・ステップ開始時は、必要とするテープ・ボリューム(VVVVVV)がJOB1にてUNLOAD完了しているため、問題なく処理可能

(移行後)※z/OS V2R5

・先行ジョブ(JOB1)終了時のUNLOAD処理が完了する前に、テープ・データセットを使用する後続ジョブ・ステップ(JOB2)が開始

UNLOAD最中のテープ・ボリューム(VVVVVV)に含まれるデータセット(DSNAME)をJOB2から要求したため、リカバリー・アロケーション発生(IEF238D

【対応策】

z/OS V2R4以降、前述のようなシナリオで新たに発生するリカバリー・アロケーション(IEF238D WTORメッセージ)を回避するには、次のような対応方法が考えられます。

<方法①> 先行ジョブ(JOB1)における不要な①PASS②RETAINパラメータ指定を削除する

※これらのパラメータは、同一ジョブの後続ステップで対象テープ・データセットが再使用される場合を想定

<方法②> 後続ジョブ(JOB2)の稼働タイミングを遅らせる

※先行ジョブ(JOB1)のジョブ終了処理におけるテープ・ボリュームのUNLOADと重ならなければ、後続ジョブ(JOB2)ではリカバリー・アロケーションを伴わずにテープ・データセットが使用可能

<方法③> PARMLIB(ALLOCxx)メンバーの「SPEC_WAIT」ステートメントを使用して、リカバリー・アロケーションに対するポリシー定義(WAITNOH)を行う

※「SPEC_WAIT」ステートメントでは、アロケーション要求時に特定ボリュームまたは装置を待機する必要がある場合のアクションを指定(省略時値: WTOR)・・・ IEF238D WTORメッセージ出力

(指定例) SPEC_WAIT POLICY(WAITNOH) MAXNWAIT(2) POLICYNW(WTOR)

■<方法③>に関する補足情報

POLICY(WAITNOH) ・・・ IEF238D WTORメッセージに対して「WAIT」、その後のIEF433D WTORメッセージに対して「NOHOLD」を応答したかのように自動的に振る舞う

IEF238D jobname - REPLY 'WAIT' OR 'CANCEL'

IEF433D jobname - WAIT REQUESTED -- REPLY 'HOLD' OR 'NOHOLD'

IEF238D WTORメッセージの代わりに、IEF289Eメッセージ出力 ・・・ POLICY(WTOR)の場合は、IEF238D WTORメッセージに対して「WAIT」を応答した時点で、IEF289Eメッセージ出力

IEF289E jobname stepname WAITING FOR VOLUME(S) OR UNIT(S)

MAXNWAIT(2) ・・・ リカバリー・アロケーション発生時、POLICY(WAITNOH)に沿ったアクションを2回まで行う

アロケーション処理の再試行が成功せず、3回目のリカバリー・アロケーションが発生した場合は、POLICYNW(WTOR)オプション指定に従い、IEF238D WTORメッセージ出力

以上