|
View previous topic :: View next topic
|
| Author |
Message |
kalyan.v
New User
Joined: 04 Feb 2008 Posts: 65 Location: Hyd
|
|
|
|
Hi,
I have two files and i want to join those files using syncsort.
Here is my sort card.
| Code: |
//STEP050 EXEC PGM=SYNCSORT,REGION=0M
//**********************************************************************
//SYSOUT DD SYSOUT=*
//SORTJNF1 DD DSN=XXXX.SORT1,DISP=SHR
//SORTJNF2 DD DSN=XXXX.SORT2,DISP=SHR
//SORTWK01 DD UNIT=WORK,SPACE=(CYL,(10,10))
//SORTWK02 DD UNIT=WORK,SPACE=(CYL,(10,10))
//SORTWK03 DD UNIT=WORK,SPACE=(CYL,(10,10))
//SORTWK04 DD UNIT=WORK,SPACE=(CYL,(10,10))
//SORTOF01 DD DSN=XXXX.SORT3,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSID,SPACE=(CYL,(30,30),RLSE),
// DCB=(MODEL.DSCB,RECFM=FB,LRECL=54)
//SYSIN DD *
JOINKEYS FILES=F1,FIELDS=(01,02,A,4,12,A)
JOINKEYS FILES=F2,FIELDS=(01,02,A,4,12,A)
REFORMAT FIELDS=(F1:1,100,F2:1,100)
SORT FIELDS=COPY
OUTFIL FILES=01,
INCLUDE=(01,02,CH,EQ,101,02,CH,AND,04,12,CH,EQ,104,12,CH),
OUTREC=(1,2,4,12,17,8,27,12,20X)
//*
|
I am getting U0016 abend with message mentioned as below.
WER486A ERROR IN BOTH JNF1 AND JNF2 PROCESSING
WER046A SORT CAPACITY EXCEEDED
WER066A APROX RCD CNT 566
How could i solve this??
Thanks |
|
| Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
kalyan.v,
The 'WER' messages indicate that you're using SyncSort and NOT DFSORT. Please be aware that Questions related to SyncSort are discussed in JCL forum. |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
| Code: |
//SORTJNF1 DD DSN=XXXX.SORT1,DISP=SHR
//SORTJNF2 DD DSN=XXXX.SORT2,DISP=SHR
|
What are the attributes of these files and how many records are in each? Hopefully, these are not partitioned datasets.
Suggest you remove the model.dscb unless there is some site-specific requirement.
There may be additonal diagnostic info in the jes output - if there is, post the message(s) as well as their id(s). |
|
| Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
kalyan.v,
Try increasing the SORTWKnn allocations. BTW, How many records do you have in the input files? |
|
| Back to top |
|
 |
kalyan.v
New User
Joined: 04 Feb 2008 Posts: 65 Location: Hyd
|
|
|
|
Hi,
I tried by increasing SORTWKnn files.But getting the same message.
I have 2,00,000 records in one file and 1,00,000 in another file.
Thanks,
Kalyan |
|
| Back to top |
|
 |
Aaru
Senior Member

Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Kalyan,
| Quote: |
| WER486A ERROR IN BOTH JNF1 AND JNF2 PROCESSING |
The error has occured while processing the SORTJNF1 and SORTJNF2 datasets. Please refer to the SYSOUT for the exact nature of the error.
| Quote: |
| WER046A SORT CAPACITY EXCEEDED |
All available storage is exhausted including the secondary allocation. Sort processing cannot continue.
Supply more intermediate storage using SORTWK or use the MAXSORT technique.
| Quote: |
WER066A APROX RCD CNT 566
|
Sort capacity exceeded and hence sort terminated. 566 is the approx no of records processed before termination. |
|
| Back to top |
|
 |
Aaru
Senior Member

Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Kalyan,
| Quote: |
| I tried by increasing SORTWKnn files |
Did you try increasing the space? Please post the sort work file attributes. |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
As i asked earlier - what are the attributes for the F1 and F2 files?
Suggest you check with the storage admin people and make sure the work volumes are not filled before you start.
As i also mentioned earlier there may be more diagnostic info. If there is, post it along with any message ids. |
|
| Back to top |
|
 |
kalyan.v
New User
Joined: 04 Feb 2008 Posts: 65 Location: Hyd
|
|
|
|
Aaru,
I increase sortwknn files to 10.
file attributes are,
UNIT=WORK,SPACE=(CYL,(20,20))
Thanks,
Kalyan |
|
| Back to top |
|
 |
Aaru
Senior Member

Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Kalyan,
| Quote: |
| UNIT=WORK,SPACE=(CYL,(20,20)) |
You will have to use maximum no of cylinders. I think you can use MAX of 1500 cylinders primary and secondary.
Give that a try.
Also post the details which Dick had asked. |
|
| Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Kalyan.
Try increasing the cylinders from 20 to 100. What about these?
| Quote: |
| As i asked earlier - what are the attributes for the F1 and F2 files? |
|
|
| Back to top |
|
 |
kalyan.v
New User
Joined: 04 Feb 2008 Posts: 65 Location: Hyd
|
|
|
|
HI,
Here are the file attributes.
//SORTJNF1 DD DSN=XXXX.SORT1,DISP=SHR -- RECFM=FB, LRECL=100
//SORTJNF2 DD DSN=XXXX.SORT2,DISP=SHR -- RECFM=FB, LRECL=100
Thanks,
Kalyan |
|
| Back to top |
|
 |
Aaru
Senior Member

Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Kalyan,
Did you try increasing the no of cylinders for the SORT work files? Try and let us know. |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
The space specified is more than enough for that data volume.
I suspect that there is/was limited space available for unit=work when the problem job was run. |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Is this now working? If not:
| Quote: |
| Did you try increasing the no of cylinders for the SORT work files? Try and let us know. |
If it fails again, please post the complete informational output from the sort. |
|
| Back to top |
|
 |
kalyan.v
New User
Joined: 04 Feb 2008 Posts: 65 Location: Hyd
|
|
|
|
Hi,
I didn't solved the issue using sync sort.
So i used ICETOOL.
It is executing successfully but i am not getting the output properly.
Here is my code.
| Code: |
//STEP050 EXEC PGM=ICETOOL
//********************************************************************
//SYSOUT DD SYSOUT=*
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD DSN=XXXX.SORT1,DISP=SHR
//IN2 DD DSN=XXXX.SORT2,DISP=SHR
//T1 DD DSN=&&T1,DISP=(MOD,PASS),SPACE=(CYL,(10,10),RLSE)
//OUT DD DSN=XXXX.SORTE,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSID,SPACE=(CYL,(30,30),RLSE),
// DCB=(MODEL.DSCB,RECFM=FB,LRECL=70)
//TOOLIN DD *
COPY FROM(IN2) TO(T1) USING(CTL1)
COPY FROM(IN1) TO(T1) USING(CTL2)
SPLICE FROM(T1) TO(OUT) ON(1,15,CH) WITH(16,40)
/*
//CTL1CNTL DD *
OUTREC BUILD=(1,2,X,4,12,32X,17,8)
/*
//CTL2CNTL DD *
OUTREC BUILD=(1,2,X,4,12,16,22,40,8)
/*
|
The inputs are like below.
| Code: |
IN1:
17(6) 24(15) 40(8)
BC AA0029 750004 XXXXXXXXXXXXX 1
BC AA0060 760005 YYYYYYYYYYYYYYY 2
BC AA0413 038239 ZZZZZZZZZZZZZ 1
BC AA0415 019151 XXXXXXXYYYYYYY 2
IN2:
17(8) 26(12)
BC AA0060 5 +00000039842
BC AA0415 5 +00000011177
BC AA0582 1 +00000000000
BC AA0687 11 +00000031013
OUTPUT :
BC AA0060 760005 YYYYYYYYYYYYYYY 2 5 +00000039842
BC AA0415 019151 XXXXXXXYYYYYYY 2 5 +00000011177
I need Output like above only matching fields from IN2.
I am getting the output like below.
BC AA0060 760005 YYYYYYYYYYYYYYY 2..........8549 010800
BC AA0415 019151 XXXXXXXYYYYYYY 2..........POS/FSPPO I.E.
<----Junk Data--------->
|
After 45th byte i am getting Junk values.
How can i get the exact output.
Thanks,
Kalyan |
|
| Back to top |
|
 |
Aaru
Senior Member

Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Kalyan,
| Quote: |
| I didn't solved the issue using sync sort. |
OK.
| Quote: |
| So i used ICETOOL. |
You should have used SYNCTOOL instead of ICETOOL. ICETOOL is shipped with DFSORT and SYNCTOOL with SYNCSORT.
| Quote: |
| Here is my code using DFSORT. |
Do you have both SYNCSORT and DFSORT installed in your shop?
Are your output error messages starting with WER or ICE?? |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
| Quote: |
please post the complete informational output from the sort.
|
Make sure to include the message ids as well as the message text. |
|
| Back to top |
|
 |
kalyan.v
New User
Joined: 04 Feb 2008 Posts: 65 Location: Hyd
|
|
|
|
Hi ,
I got the result in expected format using below sort card. But i am getting only matched records from both files.I need all records from IN2.(In IN2 some are matched with IN1.)
| Code: |
//TOOLIN DD *
COPY FROM(IN2) TO(T1) USING(CTL1)
COPY FROM(IN1) TO(T1)
SPLICE FROM(T1) TO(OUT) ON(1,15,CH) WITH(1,47)
/*
//CTL1CNTL DD *
INREC BUILD=(1:1,15,50:17,21)
/*
|
What can i do to get that??
Thanks,
Kalyan |
|
| Back to top |
|
 |
kalyan.v
New User
Joined: 04 Feb 2008 Posts: 65 Location: Hyd
|
|
|
|
Hi,
If i am trying for exact output explained above using below sort card, again i am getting error as SORT CAPACITY EXCEEDED.The message is here.
WER162B 0 PREALLOCATED SORTWORK TRACKS, 0 DYNAMICALLY ALLOCATED,
WER162B 0 ACQUIRED IN SECONDARY EXTENTS, 0 RELEASED, TOTAL OF 0 TRACKS USED
WER407I UNUSABLE SORTWORK DEVICE ALLOCATED, UNIT=VIO
WER046A SORT CAPACITY EXCEEDED
WER055I INSERT 0, DELETE 0
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000
WER066A APROX RCD CNT 20
My code is below
| Code: |
//STEP050 EXEC PGM=ICETOOL
//*********************************************************************
//SYSOUT DD SYSOUT=*
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD DSN=XXXX.SORTA,DISP=SHR
//IN2 DD DSN=XXXX.SORTC,DISP=SHR
//T1 DD DSN=&&T1,DISP=(MOD,PASS),SPACE=(CYL,(300,300),RLSE)
//OUT DD DSN=XXXX.SORTE,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSID,SPACE=(CYL,(30,30),RLSE),
// DCB=(MODEL.DSCB,RECFM=FB,LRECL=72)
//TOOLIN DD *
COPY FROM(IN2) TO(T1) USING(CTL1)
COPY FROM(IN1) TO(T1)
SPLICE FROM(T1) TO(OUT) ON(1,15,CH) WITH(1,47) USING(CTL2)
/*
//CTL1CNTL DD *
INREC BUILD=(1:1,15,50:17,21,72:C'2')
/*
//CTL2CNTL DD *
OUTFIL FNAMES=OUT,INCLUDE=(72,1,CH,EQ,C'2')
/* |
So what can i do??
Thanks,
Kalyan |
|
| Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Kalyan,
The real problem is not with the JOIN. I would suggest you to go back to the JOIN as it offers more performance than the SPLICE you used above which involves multiple passes of data.
| Quote: |
WER162B 0 PREALLOCATED SORTWORK TRACKS, 0 DYNAMICALLY ALLOCATED,
WER162B 0 ACQUIRED IN SECONDARY EXTENTS, 0 RELEASED, TOTAL OF 0 TRACKS USED
WER407I UNUSABLE SORTWORK DEVICE ALLOCATED, UNIT=VIO
WER046A SORT CAPACITY EXCEEDED |
You are tying to use an unusable UNIT parameter and you have ZERO tracks available for sorting. Correct this and try again. |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
| Quote: |
I didn't solved the issue using sync sort.
So i used ICETOOL. |
Your system uses the Syncproducts, so that is what you will use. In your environment, ICETOOL actually invokes Synctool (*it is done with alias).
Suggest you make the modifications Arun posted and we can proceed from there if there are any problems/surprises. |
|
| Back to top |
|
 |
kalyan.v
New User
Joined: 04 Feb 2008 Posts: 65 Location: Hyd
|
|
|
|
Hi,
I solved the issue using syncsort.
Thanks to all for help.
Thanks,
Kalyan |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
You're welcome - good to hear it is working
Thank you for letting us know,
d |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|