The BLKSIZE parameter is associated with the DD statement.

The purpose of BLKSIZE is to improve processing efficiency by reducing the number of physical I/Os by grouping records. The penalty however is an increase in memory as the size of the data buffers is increased to match the BLKSIZE.

If the program does not contain BLKSIZE=0 or equivalent (BLOCK CONTAINS 0 RECORDs in COBOL) then BLKSIZE on the DD statement and the file label will be overridden.

If the program or DD statement specify a BLKSIZE less than the actual size of blocks in the data set, a System 001 Abend will occur. (IBM Utilities raise a Wrong Length Record condition, but it is the same thing in reality.)

BLKSIZE (Block Size)



This stands for Block Size and prior to MVS/ESA 4.3 the BLKSIZE parameter had to be coded as a sub-parameter of DCB, as in:



BLKSIZE has subsequently been propogated to full parameter status, and does not need to be part of the DCB sub-parameter list, so the following is valid:



Both methods are still valid so BLKSIZE can be coded either way and historical JCL is likely to include the former method.

Recommendations:

  • For input data sets it is best to omit the BLKSIZE from the DD statement, allowing the system to determine the length from the program or file label.
  • For output data sets it is best to code BLKSIZE=0 to allow System Determined BLKSIZE (SDB) to calculate an optimum size.

There is a commentary on optimum BLKSIZE, and click here to calculate an optimum BLKSIZE.

Copyright © Legac-e Education 2001-