Gerhard Postpischil wrote:
On 8/1/2011 9:53 PM, CM Poncelet wrote:
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).
His example used RECFM=FB, so there are no BDWs and no RDWs (if there
were, then the first four bytes of the second record would be the RDW,
not data).
Yes ... and I am writing from memory, probably confusing
controlintervals (which always have a CIDF and at least one RDF) with
blocks. I would have to dump a non-VSAM dataset to verify this. But in
any case the BDW and RDW would not be loaded into the buffer. So, if
SORT is doing GLs to read the records from the buffer, it will have no
problem reading 2*80 instead of 80 bytes at a time - because the BLKSIZE
is a multiple of 160, the buffer size is the same as the BLKSIZE and the
records are fixed length.
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.
DCB is short for Data Control Block. These exist only in memory, and
are specific to the zOS operating systems (and earlier MVS and
OS/360). I can read DASD written on MVS on VSE, and vice versa. VSE
has no DCBs, but it manages to read data anyway.
... and DSCB is short for Data Set Control Block, SIOT is short for Step
I/O Table, JFCB is short for Job File Control Block, etc. - but thanks
for reminding me.
On DASD, each block of data is preceded by a count field containing a
logical (alternate track) or physical address (CCHHR), a key length,
and a data length. There is no RECFM, no LRECL, and the physical block
may have a length other than that specified by BLKSIZE. Regardless of
how often you repeat yourself, there is no DCB on DASD.
Furthermore, your discussion of I/O seems to indicate that either you
do not understand English, or that you are unaware of the differences
between BSAM and QSAM. I would suggest that you read up on system
control blocks, notable the IOB and ICB, look at some in a dump, and
get a better understanding of how I/O functions. Requisite manuals are
available online. While "Using Data Sets" is a bit daunting, it
contains most of the information.
I have no time for that. If something is true it can remember itself; if
it is false it is not worth remembering. Hence I remember what I am
dealing with and forget it afterwards. Do you expect me to *remember*
system control blocks? When I *need* to remember them, I dump them and
look at them - or I look at the "Data Areas" manuals or at the DSECTs -
and then I forget about them again, unless I am still using them that
is. I have been reading system dumps for more than 25 years, but don't
expect me to *remember* them afterwards. This topic is about the order
of priority of DCB attributes when opening a dataset for input v.
output, and not about system control blocks. If it were about the
latter, I would check and re-remember them beforehand: but as it isn't,
I don't bother (I have other things to get on with).
'DCB' is shorter than the 'RECFM=,LRECL=,BLKSIZE=' I am actually
referring to when I say 'DCB'; so I say 'DCB' for short.
Gerhard Postpischil
Bradford, VT
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html