On Fri, 18 Jul 2014 07:40:46 +0200, Peter Hunkeler wrote:

>RECFM=U stands for undefined. As someone else already pointed out, every block 
>can be of different length, no matter what block size is set. The block size 
>field in the DCB is used to communicate the current block's length between the 
>program and the access method. I can imagine this to be the reason it is not 
>set by OPEN.

You are thinking of the DCBLRECL field, not the block size field, and only for 
QSAM GET.

See http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/DGT2D580/2.2.29

Where it says:
"If you are reading undefined-length records (RECFM=U) and you are not using 
the large block interface (LBI), the system places the length of the record or 
segment in the logical record length (DCBLRECL) field of the data control 
block."

The block size field is not set to the current block's length for BSAM READ 
either. For BSAM READ, the length is determined after a CHECK or WAIT by 
subtracting the residual count from the length used by READ, as described in 
Using Data Sets:

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/DGT2D4A0/3.6.7
Subtract this residual count from the number of data bytes requested to be read 
by the READ macro.

I have always found the block size field set by OPEN for existing data sets 
that have a block size in the VTOC/

Bill

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to