Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Problem witH icetool - vlenmax not working.

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
bijoybabu83

New User


Joined: 15 Jan 2007
Posts: 36
Location: Kerala

PostPosted: Thu Jan 07, 2010 5:31 pm    Post subject: Problem witH icetool - vlenmax not working.
Reply with quote

My intention is to compare two files by matching a key field from both files and create an output file containing matching records only.
1. The two files are VB FILES

While using the ICETOOL I am getting error.

Code:

//STEP07   EXEC PGM=ICETOOL                                   
//TOOLMSG   DD  SYSOUT=*                                       
//DFSMSG    DD  SYSOUT=*                                       
//INPUT1    DD DISP=SHR,DSN=IHC$017.BCNJ.NASCO.COM.SUBMSTR     
//INPUT2    DD DISP=SHR,DSN=IHC$017.BCNJ.NASCO.SUBMSTR1       
//T1        DD DSN=&&EXT100,                                   
//             DISP=(,PASS,DELETE),                         
//             UNIT=TAPE
//T2        DD DSN=&&EXT200,                                   
//             DISP=(,PASS,DELETE),                         
//             UNIT=TAPE
//CONCT1    DD DSN=*.T1,VOL=REF=*.T1,DISP=(OLD,PASS,DELETE)   
//          DD DSN=*.T2,VOL=REF=*.T2,DISP=(OLD,PASS,DELETE)   
//OUTPUT1   DD DSN=IHC$017.BCNJ.NASCO.SUBMSTR.ICED,           
//             DISP=(,CATLG,DELETE),                           
//             UNIT=SYSALLDA,                                 
//             SPACE=(CYL,(50,100),RLSE)                       
//TOOLIN    DD *                                               
 COPY FROM(INPUT1) TO(T1) USING(CTL1)                         
 COPY FROM(INPUT2) TO(T2) USING(CTL2)                         
 SPLICE FROM(CONCT1) WITHALL -                                 
 ON(7,28,CH) -                                                 
 WITH(5,2) -                                                   
 WITH(35,60) VLENMAX -                                         
 TO(OUTPUT1)-                                                 
 USING(CTL3)                                                   
/*                                                             
//CTL1CNTL  DD *                                               
  OUTREC FIELDS=(1,4,5:5,2,7:7,28,35:35,60)                   
/*                                                             
//CTL2CNTL  DD *                                               
 OUTREC FIELDS=(1,4,2X,7:7,28,35:35,60)                       
/*                         
//CTL3CNTL  DD *           
 OUTFIL FNAMES=OUTPUT1     
/*
//*                         


While doing this I am getting error as :-

ICE084I 0 EXCP ACCESS METHOD USED FOR T1
ICE084I 0 EXCP ACCESS METHOD USED FOR INPUT1
ICE218A 6 77 BYTE VARIABLE RECORD IS SHORTER THAN 94 BYTE MINIMUM FOR FIELDS
ICE751I 1 EF-K10929 F0-K30362 E8-K44563
ICE052I 0 END OF DFSORT

The base file - IHC$017.BCNJ.NASCO.COM.SUBMSTR is a vb file file but all the records in the file are of length 77(including 4 bytes length field).

Can you please help me why this happens even after I use ' VLENMAX'.
Back to top
View user's profile Send private message

Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Thu Jan 07, 2010 11:06 pm    Post subject:
Reply with quote

This has nothing to do with the SPLICE operator or VLENMAX.

If you look at the TOOLMSG messages, you will see that the error occurred for one of the COPY operators, not for the SPLICE operator.
The problem is that your OUTREC statement has 35:35:60 which requires that the VB input record be at least 94 bytes, but you say the records in your input file are only 77 bytes. I don't know why you're using 35:35,60 when the records only have 77 bytes, but that results in a short record situation and causes the ICE218A.

Since I don't know exactly what you're trying to do or why you want to use 35:35,60, I can't tell you for sure how to do what you want, but you can fix the ICE218A problem by using a DFSORT/ICETOOL job like the following:

Code:

//STEP07   EXEC PGM=ICETOOL
//TOOLMSG   DD  SYSOUT=*
//DFSMSG    DD  SYSOUT=*
//INPUT1    DD DISP=SHR,DSN=IHC$017.BCNJ.NASCO.COM.SUBMSTR
//INPUT2    DD DISP=SHR,DSN=IHC$017.BCNJ.NASCO.SUBMSTR1
//T1        DD DSN=&&EXT100,
//             DISP=(MOD,PASS,DELETE),
//             UNIT=TAPE
//OUTPUT1   DD DSN=IHC$017.BCNJ.NASCO.SUBMSTR.ICED,
//             DISP=(,CATLG,DELETE),
//             UNIT=SYSALLDA,
//             SPACE=(CYL,(50,100),RLSE)
//TOOLIN    DD *
 COPY FROM(INPUT1) TO(T1) USING(CTL1)
 COPY FROM(INPUT2) TO(T1) USING(CTL2)
 SPLICE FROM(T1) WITHALL -
 ON(7,28,CH) -
 WITH(5,2) -
 WITH(35,60) VLENMAX -
 TO(OUTPUT1)-
 USING(CTL3)
/*
//CTL1CNTL  DD *
  OUTREC IFTHEN=(WHEN=INIT,BUILD=(1,4,5:5,2,7:7,28,35:35,60))
/*
//CTL2CNTL  DD *
  OUTREC IFTHEN=(WHEN=INIT,BUILD=(1,4,2X,7:7,28,35:35,60))
/*
//CTL3CNTL  DD *
  OUTFIL FNAMES=OUTPUT1
/*
//*
Back to top
View user's profile Send private message
bijoybabu83

New User


Joined: 15 Jan 2007
Posts: 36
Location: Kerala

PostPosted: Fri Jan 08, 2010 2:00 pm    Post subject: Reply to: Problem witH icetool - vlenmax not working.
Reply with quote

Hi Frank...Thank you so much for this...This time it worked.

Actually the the input and output files are similar variable length files. In each file there will be different types of data. Some types will be 77 bytes length..others had 120 bytes , 550 bytes and even 1020 bytes. Different segment records in the VB files thus has different lengths...

Also I would like to know how the issue was resolved...I find two chages here ...1. using common work file T1 2. Using BUILD . Which among these two resolved the issue and how...
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Fri Jan 08, 2010 11:00 pm    Post subject:
Reply with quote

The IFTHENs resolved the issue. When you use IFTHEN/BUILD, it pads short fields with blanks. So that eliminated the "short" records.

Using concatenated temporary data sets with referback like you did can result in problems because of a system restriction. It's better to use one T1 MOD data set and avoid that kind of concatenation.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Difference in SORT & ICETOOL Mohan Kothakota DFSORT/ICETOOL 5 Fri Sep 22, 2017 4:56 pm
No new posts LMINIT problem - not finding DDNAME Danielle.Filteau CLIST & REXX 7 Tue Sep 19, 2017 9:57 pm
No new posts LIBDEF not working in called proc packerm CLIST & REXX 0 Fri Sep 15, 2017 7:22 pm
No new posts Working with hex values in Filemanage... Emile Straker IBM Tools 0 Tue Sep 12, 2017 1:42 am
No new posts Multiple VSAM files single output fil... Mohan Kothakota DFSORT/ICETOOL 11 Wed Aug 09, 2017 7:57 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us