On Wed, 31 Dec 2008 19:16:43 +0000, Ted MacNEIL <[email protected]> wrote:
>>When using VB, some code will write a short block if the space remaining in the current block is less than the DCB LRECL, even though the actual length of the next record is unknown. >>This results in a lot of short blocks, particularly when the LRECL is large, as in this case. > >So, SYNCSORT 'repairs' this? Any properly written application should "repair" it, if I remember RECFM=V processing correctly. The LRECL value in the DCB tells you the maximum logical record length. If, when you go to write a logical record, the current data in the block + DCBLRECL is greater than the DCB block size, the access method will truncate the block. As I remember you're supposed to change DCBLRECL to reflect the actual size of the logical record you're about to write, and then the access method can properly fill the block. If you don't update DCBLRECL then if DCBLRECL is close to the blocksize (as it is in the OP's case) and significantly larger than the real LRECLs in the data set, then you could end up with a significant number of unexpectedly short blocks. Presumably SYNCSORT handles all this properly, and so you get optimal blocking, and take fewer tracks than a data set written with less than optimal blocking. Note that these are very old memories... And I know nothing about SYNCSORT. -- Walt ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

