----------------------------------------<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