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