Joined: 24 Oct 2005 Posts: 109 Topics: 36 Location: India
Posted: Fri Feb 03, 2006 5:13 am Post subject: Having issue with VLLONG
Hi,
I just read in the DFSORT manual that if my input record is larger than output data set LRECL i need to use OPTION VLLONG so that DFSORT will truncate and write the record to output data set.
Now, I have a cobol pgm which is reading the SMF VSAM data set, which has a max LRECL of 32767, and writing it to a dsn associated with SORTOUT DD name. So I added a SORTCNTL DD * card with OPTION VLLONG. But even then Sort gives me a rc of 16 and pgm abends with U0333. Below is my step in JCL:
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Fri Feb 03, 2006 2:00 pm Post subject:
The problem here is described by this bullet in the doc for ICE217A:
o E15 indicates that an E15 exit passed a variable-length record with a length greater than the L2 value specified or defaulted
and the solution is described by this bullet:
- If variable-length records from an E15, E32, or E35 exit are longer than the corresponding Ln value, correct the RDW or Ln value, as appropriate.
The L2 value is in the RECORD statement passed from the program which is listed in the //SYSOUT messages. If there's no L2 value, then the default is used. You didn't show all of the //SYSOUT messages so we can't see the RECORD statement, but you can.
The ICE217A message you received indicates that the L2 value for E15 is 294 bytes, but the record passed from the E15 is 27050 bytes. The L2 value tells DFSORT the maximum length of the record being returned from the E15. If you want to pass 27050 byte records from the E15, you need to tell DFSORT that with the L2 value in the RECORD statement, e.g.
Code:
//SORTCNTL DD *
RECORD LENGTH=(,27050)
However, since the RECORD statement in SORTCNTL completely overrides the RECORD statement from the program, you need to look at the RECORD statement the program passed and make sure you aren't losing any of that information. For example, if the RECORD statement passed from the program had TYPE=V, you want to use TYPE=V in the SORTCNTL RECORD statement. _________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
I saw in ibmbook(DFSORT GUIDE) that vllong can be used to truncate those record whose length is greater than the lrecl of the sortout or ........
1) Why it doesn't work?and even need to specify a longer record?
2)'vllong can be use to truncate long outfil but has no effect on long header or trailer records.' How dfsort know whther a record is a header,trailer or detail?By their position? fisrt,middle,and last?
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Thu Mar 23, 2006 11:19 am Post subject:
Quote:
Why it doesn't work?and even need to specify a longer record?
I have no idea what you mean by this. VLLONG works fine if you want to truncate long variable input records to the SORTOUT or OUTFIL LRECL length. For example, if your input record length is 70 bytes and your SORTOUT LRECL is 50 bytes, the output record is truncated to 50 bytes. If that's what you want to do, then VLLONG will do it.
Quote:
vllong can be use to truncate long outfil but has no effect on long header or trailer records.' How dfsort know whther a record is a header,trailer or detail?By their position? fisrt,middle,and last?
The header and trailer records are those generated by the HEADERx and TRAILERx parameters of the OUTFIL statement. DFSORT creates these for output, so it knows which they are. You shouldn't generate header and trailer records with HEADERx and TRAILERx that are longer than the OUTFIL LRECL.
Generally, you don't need VLLONG because your SORTOUT LRECL or OUTFIL LRECL should be set to or greater than the maximum length of your VB output records. You would only need VLLONG if you're doing something odd that requires long records to be truncated to a smaller LRECL. _________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum