Posted: Thu May 20, 2004 7:40 am Post subject: Job abending with ICE218A
Hi,
We are using the following control card in a job:
RECORD TYPE=V
INREC FIELDS=(1:1,4,
5:19)
SORT FIELDS=(636,8,BI,A,5,13,BI,A)
OUTFIL FILES=(01),
INCLUDE=(34,4,CH,EQ,C'ANST')
The job is abending with:
ICE218A 0 340 BYTE VARIABLE RECORD IS SHORTER THAN 657 BYTE MINIMUM FOR FIELDS
The input file is having many short records.
Please help me in solving this problem.
Thanks,
Selva _________________ --------------------------------------------------------
Knowledge is power. But Imagination is more important than Knowledge. -Albert Einstein
--------------------------------------------------------
Joined: 26 Nov 2002 Posts: 12375 Topics: 75 Location: San Jose
Posted: Thu May 20, 2004 7:58 am Post subject:
Selva,
You need to use the option VLSCMP.
VLSCMP specifies whether DFSORT is to pad "short" variable-length INCLUDE/OMIT compare fields with binary zeros. A short field is one where the variable-length record is too short to contain the entire field, that is, the field extends beyond the record. VLSCMP and NOVLSCMP apply to the INCLUDE and OMIT statements and to the INCLUDE and OMIT parameters of the OUTFIL statement. The compare fields are only padded temporarily for testing; they are not actually changed for output.
Thanks,
Selva. _________________ --------------------------------------------------------
Knowledge is power. But Imagination is more important than Knowledge. -Albert Einstein
--------------------------------------------------------
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Thu May 20, 2004 10:41 am Post subject:
Actually, just adding VLSHRT won't work in this case because VLSHRT is turned off when INREC is specified.
Instead of having INREC shorten the record, you need to remove the INREC statement, and SORT on the original input record so you can use VLSHRT to take care of the short records. Then use OUTFIL OUTREC to shorten the record after it's sorted. You need to add 14 to each starting position to reflect the input record rather than the INREC record. Here's the DFSORT control statements you need:
Code:
OPTION VLSHRT
RECORD TYPE=V
SORT FIELDS=(650,8,BI,A,19,13,BI,A)
OUTFIL FILES=(01),
INCLUDE=(48,4,CH,EQ,C'ANST'),
OUTREC=(1:1,4,5:19)
You can use the RECORD TYPE=V statement if you like, although it isn't needed since DFSORT will determine the record type from the SORTIN data set. _________________ 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
OPTION VLSHRT
RECORD TYPE=V
SORT FIELDS=(650,8,BI,A,19,13,BI,A)
OUTFIL FILES=(01),
INCLUDE=(48,4,CH,EQ,C'ANST'),
OUTREC=(1:1,4,5:19)
Could you please explain why INREC is not working in this case?
Thanks,
Selva. _________________ --------------------------------------------------------
Knowledge is power. But Imagination is more important than Knowledge. -Albert Einstein
--------------------------------------------------------
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Thu May 20, 2004 11:31 am Post subject:
Quote:
Could you please explain why INREC is not working in this case?
It's not that INREC is not working. It's that VLSHRT cannot be used with INREC, but you need VLSHRT since you have short sort fields.
When an INREC or OUTREC statement is present, DFSORT cannot use VLSHRT. However, DFSORT can use VLSHRT with the OUTREC parameter of the OUTFIL statement. So using OUTFIL OUTREC to reformat the records instead of using INREC to reformat the records allows you to use VLSHRT for the short sort fields. _________________ 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