On Thu, 17 Jul 2014 16:04:20 -0400, Thomas David Rivers wrote:

>I've been wading thru the documentation (DFSMS Using Data Sets), etc...
>trying to figure out why the DCBBLKSI field of my DCB is not
>being filled in for a RECFM=U data set for INPUT.  (Non-LBI)

The JCL reference has this:

<quote>
 12.16.3 Completing the Data Control Block

The system obtains data control block information from the following sources, 
in override order:
- The processing program, that is, the DCB macro instruction in assembler 
language programs or file definition statements or language-defined defaults 
in programs in other languages.  
- The DCB subparameter of the DD statement.  
- The data set label.
</quote>

The "Data set label" is the DSCB

Using Data Sets has information in 3.2.2.1 Filling in the DCB.

>
>In particular, I want to allocate a buffer of sufficient size to hold
>any block
>we might read for a pre-existing RECFM=U data set.

Why not use 32760?

>
>I put zeros into the DCB before the OPEN; then I do the OPEN... expecting
>the DCB to have the DCBBLKSI field set to the block size...
>
>But - it remains zero.
>
>The JCL (well, an SVC 99 actually) doesn't specify a BLKSIZE for the file.
>
>But - the file is catalogued, I would have expected the DCBBLKSI field
>to get the BLOCK SIZE from the catalog?

Not from the catalog, from the VTOC.

>
>Does anyone know why the DCBBLKSI field would not be filled in ?
>
>The example code for determining the # of bytes read (from IBM's doc)
>determines the blksize after the READ (+CHECK) macros are issued.
>Is it possible that the blksize for a RECFM=U cannot be determined at
>OPEN time, but only after a READ?

You cannot rely upon a READ to give you the maximum block size. Format U data 
sets can have every block a different size.

-- Tom Marchant

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