IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Getting error while using ICETOOL to split the file dynamica


IBM Mainframe Forums -> SYNCSORT
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
snammi

New User


Joined: 18 Mar 2009
Posts: 11
Location: Bangalore

PostPosted: Mon Aug 31, 2015 5:54 pm
Reply with quote

Hi All,

I am trying to split input file dynamically into 3 files using DFSORT. I came across an example in the DFSORT PDF file which matches my requirment. I altered my test jcl accordingly but its failing with Userabend16 when I submit. below is the code and error log. Please review and let me know what I am missing in the jcl. I changed and tried different combinations to resolve the error.
Thank you.
Code:

//STEPICE  EXEC PGM=ICETOOL
//TOOLMSG  DD  SYSOUT=*
//DFSMSG   DD  SYSOUT=*
//*
//IN       DD  DSN=XXX.CSC916.EXTR.AUG21.SORT,DISP=SHR
//T1       DD DSN=&&T1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(NEW,PASS)
//C1       DD DSN=&&C1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(NEW,PASS)
//CTL3CNTL DD *
     OUTFIL FNAMES=(OUT01,OUT02,OUT03),
//    DD DSN=*.C1,VOL=REF=*.C1,DISP=(OLD,PASS)
//OUT01    DD DSN=USR204T.XXX.EXTR1,
//             DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,
//             SPACE=(CYL,(200,60),RLSE),
//             RECFM=FB,LRECL=600,BLKSIZE=0
//OUT02    DD DSN=USR204T.XXX.EXTR2,
//             DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,
//             SPACE=(CYL,(200,60),RLSE),
//             RECFM=FB,LRECL=600,BLKSIZE=0
//OUT03    DD DSN=USR204T.XXX.EXTR3,
//             DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,
//             SPACE=(CYL,(200,60),RLSE),
//             RECFM=FB,LRECL=600,BLKSIZE=0
//TOOLIN   DD *
 COPY FROM(IN) USING(CTL1)
 COPY FROM(T1) TO(C1) USING(CTL2)
 COPY FROM(IN) USING(CTL3)
/*
//CTL1CNTL DD *
 OUTFIL FNAMES=T1,REMOVECC,NODETAIL,
 TRAILER1=(COUNT=(M11,LENGTH=8))
/*
//CTL2CNTL DD *
 OUTREC IFOUTLEN=80,
 IFTHEN=(WHEN=INIT,BUILD=(1:1,8,ZD,DIV,+03,TO=ZD,LENGTH=8)),
 IFTHEN=(WHEN=(1,8,ZD,GT,+0),
 BUILD=(2X,C'SPLIT1R=',1,8)),
 IFTHEN=(WHEN=NONE,
 BUILD=(2X,C'SPLIT1R=1'))
/*
//


Error Log
Code:

WER416B  TOTAL OF 2 EXCP'S ISSUED FOR COPYING
WER054I  RCD IN          1, OUT          1
WER169I  RELEASE 1.4 BATCH 0525 TPF LEVEL 1.0
WER052I  END SYNCSORT - YRP246H,STEPICE,,DIAG=C200,404E,EA82,0066,8A7E,6DC2,2AC
SYNCSORT FOR Z/OS  1.4.1.0RI   U.S. PATENTS: 4210961, 5117495   (C) 2010 SYNCSO
                                               ROADWAY   z/OS   1.13.0
SYNCSORT LICENSED FOR CPU SERIAL NUMBER 27943, MODEL 2094 503             LICEN
CTL3CNTL :
     OUTFIL  FNAMES=(OUT01,OUT02,OUT03),
  SPLIT1R=0004265C
                 *
WER428I  CALLER-PROVIDED IDENTIFIER IS "0003"
WER268A  OUTFIL STATEMENT  : SYNTAX ERROR
WER211B  SYNCSMF  CALLED BY SYNCSORT; RC=0000
WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
******************************* BOTTOM OF DATA ********************************
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Mon Aug 31, 2015 7:11 pm
Reply with quote

Well, you may be trying to do it with DFSORT, but you are using SyncSORT.

Do you have 42653 records on your file?

Why don't you use ICETOOL's COUNT operator?

You'd be better without the LRECL on your outputs. Why so much SPACE allocated?

From your input DSN, why don't you out a "count" while you're already processing that data elsewhere?
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Mon Aug 31, 2015 7:16 pm
Reply with quote

The answer to why you got the C is TO=ZD. If you change that to TO=ZDF your long-winded approach should work. Note, M11 is SyncSORT's default edit mask, so needn't be provided.
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Mon Aug 31, 2015 7:33 pm
Reply with quote

Quote:

Code:

//CTL3CNTL DD *
     OUTFIL FNAMES=(OUT01,OUT02,OUT03),
//    DD DSN=*.C1,VOL=REF=*.C1,DISP=(OLD,PASS)



Maybe you look at that.
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Mon Aug 31, 2015 8:12 pm
Reply with quote

DSN=*.C1 contains the problem, but isn't what caused the problem.

The division will produce a signed result for positives when TO=ZD is specified. To get the "unsigned" result for positives, TO=ZDF is required.
Back to top
View user's profile Send private message
snammi

New User


Joined: 18 Mar 2009
Posts: 11
Location: Bangalore

PostPosted: Tue Sep 01, 2015 12:58 pm
Reply with quote

Hi Bill,

My input file contains more than 120000 on any given day and it would be emailed in subsequent steps. Due to size of the file, email program is giving out error so we have decided to split the file into 3 equal parts and email them individually. Since I do not know the size of input file prior, I have defined extra space for the output files. The input file mentioned in the above code has 127961 records and 127961/3 is 42653.6 and when commented out the
Code:
 //    DD DSN=*.C1,VOL=REF=*.C1,DISP=(OLD,PASS)
and removed the coma it wrote all records into 3 output files instead of splitting the records equally.
I am not processing the file else where if that was the case, I would have used 3 output files and split the records programattically.
Thank you for your replies.
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Sep 01, 2015 1:04 pm
Reply with quote

Did you do what I suggested, and change the TO=ZD to TO=ZDF?
Back to top
View user's profile Send private message
snammi

New User


Joined: 18 Mar 2009
Posts: 11
Location: Bangalore

PostPosted: Tue Sep 01, 2015 1:29 pm
Reply with quote

Yes Bill. I just did that change and it worked. Thank You icon_smile.gif
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Sep 01, 2015 3:10 pm
Reply with quote

120,000 records is under 90 cylinders. You're chopping that in three, because 120,000 records (or 90 cylinders) is too big for the email attachment - yet you have defined primary space for the chopped-down as... 200 cylinders, in case it grows?

You should be able to establish pretty accurately how much data is "too much" for the email attachment. Then limit your split outputs to that, no secondary space, and talk to your Production Control to check that running out of space will cause an abend.

If you know there is something that is not going to work, there's no point in allowing for it, is there? That'll just waste time.
Quote:

I am not processing the file else where if that was the case, I would have used 3 output files and split the records programattically.


Really? Why is this the DSN?

Code:
XXX.CSC916.EXTR.AUG21.SORT


I'd imagine something had extracted data for logical-date Aug 21 and then SORTed it before it got to you. Even if that was one SORT step, the count or the split could have been done there.

I don't know why you thought that removing your concatenation and the comma would do anything other than exactly what you stated it did. Did you read what I wrote?

Quote:
DSN=*.C1 contains the problem, but isn't what caused the problem.

The division will produce a signed result for positives when TO=ZD is specified. To get the "unsigned" result for positives, TO=ZDF is required.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> SYNCSORT

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts Error to read log with rexx CLIST & REXX 11
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
No new posts Error when install DB2 DB2 2
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
Search our Forums:

Back to Top