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

Reply via email to