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

Reply via email to