Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
Hello,
Syncsort topics are discussed in the JCL part of the forum (rather than the DFSORT part of the forum).
It may help if you post the jcl used. The output record is not defined long enough.
Quote:
WER244A [ddname] {INREC,OUTREC} SHORT RECORD
EXPLANATION: The ddname will be SORTOUT, SORTOFxx,
SORTOFx or the ddname provided by an OUTFIL FNAMES parameter.
A variable-length record was too short to contain all the fields specified
on the control statement.
Joined: 07 Jun 2010 Posts: 59 Location: coimbatore
Quote:
The output record is not defined long enough.
i think the output data can hold in the specified space-DCB.
I have increased the output dataset space upto 500 cyls.. But still i couldn't achieve the desired o/p.
Is ter anything i need to change in the JCL..?
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
An output record not defined long enough has ABSOLUTELY NOTHING to do with the number of cylinders you allocate. An LRECL that is too short is too short, whether you give the file one track or 500 cylinders.
Note that an LRECL of 17 means the maximum record length that will be allowed will be 13 bytes due to the record descriptor word that must be allowed for in an VB file.
Isn't 1,4 the Record Descriptor Word (two bytes of record-length, two bytes "reserved for system use" (always low-values that I have seen))?
Maybe, if you want the first four bytes of the record, it should be 5,4?
Maybe (guessing) SYNCSORT is ignoring your request here. Then you would only have 13 bytes of record plus your own RDW. Making 17. Like the message says.
Why, if they are all 17 bytes, do you want the output to be variable anyway? Nearly 20% of wasted space?
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
Quote:
Isn't 1,4 the Record Descriptor Word (two bytes of record-length, two bytes "reserved for system use" (always low-values that I have seen))?
The second two bytes are used for spanned records. I don't remember the codes, but there is one to indicate this record stants in this block but does not end in this block, one that indicates this record ends in this block but does not start in this block, and one that indicates this record neither starts nor ends in this block. For spanned records, the 00 means this record begins and ends in this block, which is pretty much the same meaning as for non-spanned records.