IBM Z Japan - Group home

#002【z/OS V2R3新機能】PDSデータセット作成時の「ゼロ」ディレクトリー・スペース

  
データセット編成として「DSORG=PO」を指定しPDSデータセットを新規作成するつもりが、ディレクトリー用スペースの指定を忘れて、中途半端なPDSデータセットが作られてしまったという経験はありませんか?

区分編成データセット(PDS)の作成時には、ディレクトリー用スペースの指定を必要としますが、指定しなかった場合の挙動は、PDSデータセットの作成方法によって異なります。
①ISPF OPT3.2パネル操作による新規アロケーションで、「Data set name type」として「PDS」を指定した場合
「Directory blocks」無指定、あるいは、「0」指定時には、次のようなエラーが発生します ⇒ 作成不可
Invalid combination(ISRU279 Partitioned data sets require a value >0 for directory blocks.)
②バッチジョブによるJCLアロケーション、プログラムによる動的アロケーションで「DSORG=PO」を指定した場合
ディレクトリー用スペースを無指定、あるいは、「0」を明示指定した場合でもエラー検知されず、割り振られたPDSデータセットに対してメンバー作成を試みると「BLDLエラー」が発生します ⇒ PDSデータセットが利用不可の状態
BLDL error(ISRE092 I/O error, insufficient virtual storage, or other BLDL error.)

【z/OS V2R3の新機能】

PARMLIB(DEVSUPxx)メンバーにて新規パラメーターが提供され、前述②のケースを対象に、ディレクトリー用スペースが無指定(あるいは「0」指定)のPDSデータセット(DSORG=PO)作成を禁止できるようになりました。
ENABLE(ZERO_DIR_PDS): ディレクトリー用スペースが「0」ブロックのPDS作成を許可する(省略時解釈)
DISABLE(ZERO_DIR_PDS): ディレクトリー用スペースが「0」ブロックのPDS作成を禁止する(新機能)
省略時解釈は、従来と同じ挙動になります。一方、「DISABLE(ZERO_DIR_PDS)」パラメーターを明示指定した場合、ディレクトリー用スペースが「0」ブロックのPDSデータセット作成は、バッチジョブによるJCLアロケーション、プログラムによる動的アロケーション、いずれの場合も不可となります。
z/OS V2R4では、「DISPLAY DEVSUP」新規コマンドを利用することで、その時点で有効なPARMLIB(DEVSUPxx)メンバーの設定値が表示できますので、出力メッセージIEA253Iにて、該当パラメーターのENABLEあるいはDISABLE状況を確認できるようになりました。

添付ファイルには、新規パラメーター指定によるバッチジョブ実行例、出力されるエラー情報などを記載しています。
2020-08-03_BLOG2_zOS_V2R3_ALLOC_ZERO_DIR_PDS.pdf
z/OS V2R3の新機能をご活用ください!