MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Job abending with ICE218A

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities
View previous topic :: View next topic  
Author Message
selva21
Beginner


Joined: 30 Dec 2003
Posts: 53
Topics: 31

PostPosted: Thu May 20, 2004 7:40 am    Post subject: Job abending with ICE218A Reply with quote

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
--------------------------------------------------------
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12375
Topics: 75
Location: San Jose

PostPosted: Thu May 20, 2004 7:58 am    Post subject: Reply with quote

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.

So change your control cards to the following

Code:

  OPTION VLSCMP
  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')


Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
selva21
Beginner


Joined: 30 Dec 2003
Posts: 53
Topics: 31

PostPosted: Thu May 20, 2004 9:26 am    Post subject: Reply with quote

Thanks Kolusu for your help !

But the job again failed with the same return code.

The job is:
Code:

//STEP01   EXEC PGM=SORT                                             
//SORTMSG  DD SYSOUT=*                                               
//SYSOUT   DD SYSOUT=*                                               
//SORTIN   DD DSN=IAPTS.TEST.LOG.ANST.LOGRP00.SELVA,                 
//            DCB=(RECFM=VB,BLKSIZE=32008,LRECL=16004),DISP=SHR       
//SORTOF01 DD DSN=IAPTS.TEST.ANST.LOGRP00.&PRODUCT..&SYSUID,         
//            DISP=(,CATLG,DELETE),                                   
//            UNIT=DISK,SPACE=(TRK,(50,50),RLSE),                     
//            DCB=(LOG.DSCB,RECFM=VB,BLKSIZE=32008,LRECL=16004)       
//SYSIN    DD *                                                       
  RECORD TYPE=V                                                       
  OPTION VLSCMP                                                       
    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')                     
/*

Thanks,
Selva.
_________________
--------------------------------------------------------
Knowledge is power. But Imagination is more important than Knowledge. -Albert Einstein
--------------------------------------------------------
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12375
Topics: 75
Location: San Jose

PostPosted: Thu May 20, 2004 9:56 am    Post subject: Reply with quote

selva,

oops I just remembered that VLSCMP affects only INCLUDE/OMIT only. You need OPTION VLSHRT which affects SORT/MERGE as well as SUM parms.

Change the option to VLSHRT and you don't need the record type=v

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Frank Yaeger
Sort Forum Moderator
Sort Forum Moderator


Joined: 02 Dec 2002
Posts: 1618
Topics: 31
Location: San Jose

PostPosted: Thu May 20, 2004 10:41 am    Post subject: Reply with quote

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
Back to top
View user's profile Send private message Send e-mail Visit poster's website
selva21
Beginner


Joined: 30 Dec 2003
Posts: 53
Topics: 31

PostPosted: Thu May 20, 2004 11:08 am    Post subject: Reply with quote

Thanks Frank and Kolusu for your help !

It works now without the INREC .

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
--------------------------------------------------------
Back to top
View user's profile Send private message
Frank Yaeger
Sort Forum Moderator
Sort Forum Moderator


Joined: 02 Dec 2002
Posts: 1618
Topics: 31
Location: San Jose

PostPosted: Thu May 20, 2004 11:31 am    Post subject: Reply with quote

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
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
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


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group