View previous topic :: View next topic
Author
Message
rarvins New User Joined: 24 Jan 2007Posts: 59 Location: Texas
I have a job which merges 2 files using sort join. The job had been running fine till last month. But now it has abended saying sort capacity exceeded. I went thru some earlier posts in the forum and tried using CORE=MAX instead of VSCORE=16M but that didn't work.
Code:
JOB:
----
//STEP001 EXEC PGM=SORT,PARM='DYNALLOC(WORK,32),VSCORE=16M'
//*
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//*
//SORTWK01 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK02 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK03 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK04 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK05 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK06 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK07 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK08 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK09 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK10 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK11 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK12 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK13 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK14 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK15 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK16 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK17 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK18 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK19 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK20 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK21 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK22 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK23 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK24 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK25 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK26 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK27 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK28 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK29 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK30 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK31 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//SORTWK32 DD SPACE=(CYL,(1000,1500),RLSE),UNIT=SYSDA
//*
//SORTJNF1 DD DISP=SHR,DSN=INPUT.FILE1
//SORTJNF2 DD DISP=SHR,DSN=INPUT.FILE2.WIDE1
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE2
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE3
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE4
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE5
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE6
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE7
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE8
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE9
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE10
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE11
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE12
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE13
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE14
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE15
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE16
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE17
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE18
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE19
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE20
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE21
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE22
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE23
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE24
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE25
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE26
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE27
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE28
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE29
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE30
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE31
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE32
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE33
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE34
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE35
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE36
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE37
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE38
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE39
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE40
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE41
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE42
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE43
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE44
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE45
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE46
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE47
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE48
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE49
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE50
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE51
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE52
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE53
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE54
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE55
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE56
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE57
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE58
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE59
// DD DISP=SHR,DSN=INPUT.FILE2.WIDE60
000120 //*
000121 //SORTOUT DD DSN=OUTPUT.FILE,
000122 // DISP=(NEW,CATLG,CATLG),
000123 // UNIT=(PROD,6),
000124 // SPACE=(CYL,(1000,1500),RLSE),
000125 // DCB=(DSORG=PS,RECFM=FB,BLKSIZE=0)
000126 //SYSIN DD *
000127 JOINKEYS FILE=F1,FIELDS=(4,19,A)
000128 JOINKEYS FILE=F2,FIELDS=(11,19,A)
000129 REFORMAT FIELDS=(F1:4,19,F1:211,4,F2:1,4,F2:5,6)
000130 SORT FIELDS=COPY
000131 /*
000132 //*
SYSOUT:
------
SYSIN :
JOINKEYS FILE=F1,FIELDS=(4,19,A)
JOINKEYS FILE=F2,FIELDS=(11,19,A)
REFORMAT FIELDS=(F1:4,19,F1:211,4,F2:1,4,F2:5,6)
SORT FIELDS=COPY
WER276B SYSDIAG= 8139073, 10657592, 10657592, 3318682
WER164B 67,724K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER164B 0 BYTES RESERVE REQUESTED, 3,476,640 BYTES USED
WER146B 20K BYTES OF EMERGENCY SPACE ALLOCATED
WER481I JOINKEYS REFORMAT RECORD LENGTH= 33, TYPE = F
WER110I SORTOUT : RECFM=FB ; LRECL= 33; BLKSIZE= 27984
WER410B 64,400K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG LINE,
WER410B 0 BYTES RESERVE REQUESTED, 100K BYTES USED
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000
WER449I SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
WER486A ERROR IN JNF2 PROCESSING
WER482I JNF1 STATISTICS
WER483B 30,512K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER483B 0 BYTES RESERVE REQUESTED, 27,840K BYTES USED
WER108I SORTJNF1 : RECFM=FB ; LRECL= 900; BLKSIZE= 27900
WER483B 27,188K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG LINE,
WER483B 0 BYTES RESERVE REQUESTED, 27,188K BYTES USED
WER483B G=11315,B=62,BIAS=99
WER483B 0 PREALLOCATED SORTWORK TRACKS, 82,500 DYNAMICALLY ALLOCATED,
WER483B 36,000 ACQUIRED IN 12 SECONDARY EXTENTS, 0 RELEASED, TOTAL OF 112,006 TRACKS USED
WER482I JNF2 STATISTICS
WER483B 34,772K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER483B 0 BYTES RESERVE REQUESTED, 32,288K BYTES USED
WER108I SORTJNF2 : RECFM=FB ; LRECL= 429; BLKSIZE= 27885
WER483B 31,636K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG LINE,
WER483B 0 BYTES RESERVE REQUESTED, 31,636K BYTES USED
WER483B G=67873,B=20,BIAS=02
WER483B 0 PREALLOCATED SORTWORK TRACKS, 240,000 DYNAMICALLY ALLOCATED,
WER483B 1,225,665 ACQUIRED IN 458 SECONDARY EXTENTS, 0 RELEASED, TOTAL OF 1,465,665 TRACKS USED
WER046A SORT CAPACITY EXCEEDED
WER066A APROX RCD CNT 174885836
Back to top
dick scherrer Moderator Emeritus Joined: 23 Nov 2006Posts: 19244 Location: Inside the Matrix
Hello,
Most likely, either the volume of data to be processed has increased or there is less space available for sortwork.
Suggest you talk with your storage management people and determine if there is at least as much sortwork space available as there was last month.
Also, suggest you determine if the data volume has increased.
Back to top
dneufarth Active User Joined: 27 Apr 2005Posts: 419 Location: Inside the SPEW (Southwest Ohio, USA)
I'm a bit rusty on sorting, but if this is a copy, why are work files needed at all?
Back to top
rarvins New User Joined: 24 Jan 2007Posts: 59 Location: Texas
Hi Dave, this is not just a copy job. I am trying to match 2 files based on keys and create an output file with the fields from both the input files.
Back to top
Alissa Margulies SYNCSORT Support Joined: 25 Jul 2007Posts: 496 Location: USA
rarvins wrote:
//STEP001 EXEC PGM=SORT,PARM='DYNALLOC(WORK,32),VSCORE=16M'
First, it appears that you are missing an equal sign in your PARM statement. It should be:
Code:
PARM='DYNALLOC=(WORK,32),VSCORE=16M'
Second, VSCORE is your below the line virtual storage. You should NEVER code 16M here. I believe you intended to specify VSCORET=16M.
Quote:
WER483B 0 PREALLOCATED SORTWORK TRACKS, 240,000 DYNAMICALLY ALLOCATED,
WER483B 1,225,665 ACQUIRED IN 458 SECONDARY EXTENTS, 0 RELEASED, TOTAL OF 1,465,665 TRACKS USED
WER046A SORT CAPACITY EXCEEDED
WER066A APROX RCD CNT 174885836
Third, I would recommend swapping SORTJNF1 and SORTJFN2. The larger of the 2 files should be JNF1. If you are still encountering the WER046A, try increasing DYNALLOC to 100.
In addition, if you hard code 32 SORTWKs in the JCL, and the number you specify for DYNALLOC is also 32, then no additional SORTWKs will be dynamically allocated. The number specified in the DYNALLOC PARM is the total number of SORTWKs (JCL and dynamically allocated combined). For example, if you only hard-coded 10 SORTWKs in the JCL, then 22 could then potentially be dynamically allocated.
Back to top
abin Active User Joined: 14 Aug 2006Posts: 198
Why do we require to code work data sets in JCL if DYNALLOC is given??. Will noy DYNALLOC allocate the sort work data sets dynamically whenever required.
Back to top
Alissa Margulies SYNCSORT Support Joined: 25 Jul 2007Posts: 496 Location: USA
Coding SORTWKs in the JCL is not a SyncSort requirement. Allowing SyncSort to dynamically allocate necessary SORTWORK space is generally considered more efficient, as the SORTWORK space is acquired "as needed" and you avoid scenarios where disk space is potentially over-allocated by the user.
Back to top
rarvins New User Joined: 24 Jan 2007Posts: 59 Location: Texas
Hi Alissa, thanks a lot. I tried the options given by you and it resolved the problem. Also I understood DYNALLOC better
Back to top
Please enable JavaScript!