z/OS V2R1では、ボリューム・カウント制限によるテープ・マルチボリューム・データセットの拡張不可(ABEND837 RC08)を排除するため、ボリューム・カウントの指定有無によらず、最大ボリューム数(255)まで拡張できるような新機能が標準提供されました。
※「256」ボリューム目には拡張できず「ABEND637 RC04」発生
この新機能は、「DFSMS APAR OA46493/OA49623/OA54541」(PTF対象: z/OS V2R1、V2R2)による見直しが行われ、z/OS V1R13までと同様、指定されたボリューム・カウントに応じて最大ボリューム数が設定されるように変わりました。
※テープ・データセットへの書き出し処理が何らかの理由でループしたような場合、明示指定されたボリューム・カウントによる歯止めが利かず、従来よりも遅いタイミングで異常終了(ABEND637 RC04)する課題への対応
※ボリューム・カウント指定なしの場合は、z/OS V2R1当初と変わらず、最大ボリューム数(255)まで拡張可能
【テープ・マルチボリューム・データセットの最大ボリューム数】
■ボリューム・カウント指定有無による最大ボリューム数
ボリューム・カウント
指定
|
z/OS V2R1
標準機能
|
DFSMS APAR OA46493/OA49623/OA54541以降(z/OS V2R1、V2R2)
z/OS V2R3以降
|
あり ※注意点①
|
255
|
ボリューム・カウント
※指定値が5以下の場合: 5
※指定値が6以上の場合: 5 + 15の倍数
(例: 指定値が10の場合は、5+15=20)
|
なし ※注意点②
|
255
|
255
|
※注意点①
・JCL DDステートメントのボリューム・カウント指定としては、VOLUMEパラメータの明示的なボリューム・カウント以外に、VOLUMEパラメータのvolser数、UNITパラメータのユニット・カウントが有効です。注意点としては、ボリューム・カウントの明示指定がない場合でも、VOLUMEパラメータで指定されたvolser数が暗黙的にボリューム・カウントとして扱われます。
※注意点②
・「指定なし」は、JCL DDステートメント、動的アロケーション、Data Classのいずれでもボリューム・カウントが指定なしの状況を示します。
■最大ボリューム数の制御(JCL DDステートメント、Data Classの組み合わせ)
JCL DDステートメントのボリューム・カウント指定はあるか?
|
Data Classは
アサインされたか?
|
そのData Classに
ボリューム・カウント
指定はあるか?
|
z/OS V2R1、V2R2
|
z/OS V2R3以降
|
DFSMS APAR OA46493/OA49623/OA54541
|
PTF未適用(標準機能)
|
PTF適用済
|
Yes ※注意点①
|
Yes/No
|
Yes/No
|
255
|
ボリューム・カウント(JCL DD)
|
No
|
Yes
|
Yes
|
255
|
ボリューム・カウント(Data Class)
|
No
|
Yes
|
No
|
255
|
No
|
No
|
N/A
|
255
|
|
|
|
|
|
|
【Data Classで最大ボリューム数を制御する際の考慮事項】
■JCL DDステートメントのボリューム・カウント指定を行わず、Data Classで最大ボリューム数を制御する場合は、次の点に注意が必要です。
※Data Classの「Volume Count」パラメータ指定は、SMS管理テープ・データセットに対してのみ有効
■z/OS V2R3以降、あるいは、DFSMS APAR OA46493/OA49623/OA54541のPTF適用後(z/OS V2R1、V2R2)、Data Classの「Volume Count」パラメータ省略時値(1)を利用している場合、テープ・マルチボリューム・データセットは最大「5」ボリュームまで拡張可能です。
※仮想テープへのDASDボリューム・バックアップ処理などで「6」ボリューム以上を必要とする場合、「IEC028I 837-08」(ABEND837 RC08)発生
※指定可能な「Volume Count」パラメータ値の範囲: 「1~255」または「ブランク」(省略時値: 1)
■例えばz/OS V2R3以降、「ABEND837 RC08」発生を回避する(できるだけ多くのボリューム数を使用可能とする)目的で、Data Classの「Volume Count」パラメータにて「255」、または、「ブランク」指定を行う場合、共に最大ボリューム数が「255」という点は変わりませんが、仮想記憶域への影響が大きく異なります。
Data Classで指定する
「Volume Count」
|
最大
ボリューム数
|
仮想記憶域への影響
|
255
|
255
|
初期アロケーション時に、255ボリューム分をサポートするための制御ブロックを一括確保
|
ブランク
|
255
|
最大5ボリュームをサポートする制御ブロックのみを初期アロケーション時に確保し、ボリュームの拡張状況に応じて追加の制御ブロックを確保
|
■「Volume Count」として「255」明示指定のData Classがアサインされたテープ・データセットを多数のジョブ・ステップでアロケーションする場合、多量の制御ブロックがSP237に蓄積され続けた結果、後続ステップ開始時のREGIONサイズが確保できなくなり、ABEND822 RC14発生に至る可能性があります。
※これらの制御ブロックはSP237(SWAブロック)に確保され、ジョブ終了時まで解放されません
■このような事象発生を回避するため、ボリューム拡張を最大値「255」まで可能とし、かつ、アロケーションによる仮想記憶域への影響を最小化するには、Data Classの「Volume Count」を「ブランク」指定(省略時値「1」を上書き)することが推奨です。
※z/OS V2R1標準機能(DFSMS APAR OA46493/OA49623/OA54541のPTF未適用)では、最大ボリューム数がData Classの「Volume Count」指定値によらず「255」のため、z/OS V2R3以降への移行時にその最大ボリューム数を踏襲する場合も、同様な考慮が必要
以上