----------------------------------------<snip>-----------------------------------
Quite possibly; but it's a contrived case where the 2nd LRECL is a fixed length multiple of the first (so there is one BDW and one RDW, and the records follow each other consecutively in the buffer).
---------------------------------------<unsnip>-----------------------------------
Wrong. There are no BDW's or RDW's in RECFM=F. Or in FB. The access method code (for QSAM) or program code (for BSAM) are responsible for breaking a block into logical records. This is why, with this format, the BLKSIZE MUST be an integral multiple of the LRECL value. Similarly, there are no BDW's or RDW's for RECFM=U and the blocks may be any random length, up to and including the BLKSIZE defined for the dataset.

----------------------------------------<snip>----------------------------
By 'general purpose' example I meant one where the LRECLs, RECFMs and BLKSIZEs in the input source dataset are different, and independently so, from those in the program's DCB - i.e. where they can be completely random and yet still work. If the DCB is opened for output, the I/O will complete successfully if the dataset and program DCB attributes are chosen completely at random, without having to be multiples or divisors of each other (excluding BLKSIZE if FB etc.); but if the DCB is opened for input this is not the case, because the program's DCB attributes must now be compatible with those of the source dataset on DASD to avoid I/O errors. Hence, the assertion that DCB attribute override priority is 'program -> JCL -> DASD' is true if the DCB is opened for output; but it is false (or at least 'it does not work', for the benefit of those who can stomach only a politically correct version of the truth) if it is opened for input, because it then hits I/O errors.
--------------------------------------<unsnip>-----------------------------
If you have DCB values coded in the program, they will rule and you have no right to expect them to work every time. Different formats of records have their uses, assets and drawbacks. If you code the program to accept anything, you'll have a serious amount of code dedicated to handling the different types of RECFM and you'd better NOT have any values coded in the DCB in the program. You can always interrogate those values after the dataset has been successfuly OPEN'ed.

You don't have to like it; just live with it. Cuz' them's the conditions that prevail.

Rick

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to