When allocating and formatting a VLS file for use with Ideal or Datacom/DB, the internal addressing configuration dictates how large the VLS file can be. If the upper limit is exceeded, error messages like this from the VLSUTIL program could be received:
DISK SPACE ALLOCATION IS GREATER THAN MAXIMUM ALLOWED. EXCESS SPACE IS WASTED
RUN CANCELLED. ERROR CODE IS 0212
z/OS
IPC 15.1
Since IPC version 14.0, a new parameter was introduced for the FORMAT function - LIBFMT= {H | F}. This parameter identifies whether the block number is stored as a 2-byte value (parameter value H for halfword), or as a 4-byte value (parameter value F for fullword). If this is not specified, blocks will use the 2-byte format. The result, as specified in the IPC Implementation Guide:
Here is a table showing three common blocksizes, and the maximum number of blocks or tracks that can be allocated , depending on whether LIBFMT=H, with its maximum number of blocks, or LIBFMT=F, with the maximum allocation of 65 535 tracks (4369 cylinders):
Block | Blocks | LIBFMT=H | LIBFMT=F | ||||
Size | per track | Max Trks | Max Cyls | Max blocks | Max Trks | Max Cyls | Max blocks |
1960 | 28 | 2175 | 145 | 60900 | 65535 | 4369 | 1834980 |
2000 | 26 | 2342 | 156 | 60900 | 65535 | 4369 | 1703910 |
4000 | 12 | 5075 | 338 | 60900 | 65535 | 4369 | 786420 |
To allocate and initialize this VLS file, use a JCL like this below. Note that secondary allocations are not used with VLS files. Code the correct BLKSIZE and NAMELEN values for the specific VLS file.
//FMTVLS01 EXEC PGM=VLSUTIL
// INCLUDE MEMBER=IPCSTLIB
// INCLUDE MEMBER=IPCDDOUT
//VLSFILE DD DSN=YOUR.VLS.LIB,DISP=(,CATLG,DELETE),
// UNIT=3390,VOL=SER=volser,
// DSORG=DA,SPACE=(CYL,(number))
//SYSIN DD *
FORMAT BLKSIZE=4000,NAMELEN=24,LIBFMT=F
/*
For more information on handling VLS files, please refer to the Datacom Tools documentation section VLS Utility (VLSUTIL)