On Tue, 3 Mar 2015 11:29:04 -0800, retired mainframer wrote:

>Run IEBGENER on the input dataset.  Override the DCB to specify RECFM=FB and 
>LRECL=2.  The BLKSIZE from the DSCB should be a multiple of 338.  Specify the 
>DCB for the interim output dataset as RECFM=FB, LRECL=2, and BLKSIZE as any 
>multiple of 336 you like.
> 
Save QSAM overhead; use LRECL=26, which is 338/13 for SYSUT1.  Use
BLKSIZE=26208 which is 26*336*3 for SYSUT2.

>Run IEBGENER on the interim output dataset.  Override the DCB to specify 
>LRECL=336.  The RECFM and BLKSIZE should be good from the DSCB.  Specify the 
>DCB for the final output as RECFM=FB, LRECL=336, and BLKSIZE as any multiple 
>of 336 you like.
>
Or, MOD a dummy to the "interim" data set, overriding LRECL to 336 on both
SYSUT1 and SYSUT2.  This should overwrite LRECL in the DSCB.

>Delete the interim dataset.
>
Keep it.  (I've now spent more HR dollars inventing an optimization than
the optimization saves.)

But, I believe FTP (he said he used) pads the last record (with nulls?)
to a multiple of LRECL (338).  This may cause the last block of the
interim data set not to be a multiple of 336, which may result in
I/O errors when QSAM reads it with LRECL=336.

FTP the (slightly corrupted) data set to LOCALHOST, specifying LRECL=336?
This may result in a junk record at the end, created by two padding operations.

I hate MVS!

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to