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.
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 ********************************
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
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.
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.
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
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.