MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

WER002A-Excess Cards Error

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities
View previous topic :: View next topic  
Author Message
bprasanna
Beginner


Joined: 05 Sep 2003
Posts: 119
Topics: 33
Location: Hyderabad

PostPosted: Mon Jul 05, 2004 8:27 am    Post subject: WER002A-Excess Cards Error Reply with quote

Hi,
Can we do this one with SYNCSORT?

We are haivng a program which will create dynamic control card for a sort step as a FB member of lrecl 80.

It looks like below.
Code:

SORT FIELDS=(7,12,CH,A)                                   
INCLUDE COND=((7,12,CH,EQ,X'aaaaaa'),OR,
              (7,12,CH,EQ,X'bbbbbbbbbbbbb'),OR,
              (7,12,CH,EQ,X'ccccc'),OR,
              (7,12,CH,EQ,X'ddddd'),OR,
              (7,12,CH,EQ,X'eeee'),OR,
                 .
                 .------------------------------->999 record

                (7,12,CH,EQ,X'qqqq'),OR,
                (7,12,CH,EQ,X'wwww'),OR,
                (7,12,CH,EQ,X'jjjj').

Whenever this number(include cond options) goes beyond 999,the job is getting abend.

Now I want to split this file in such a way that when it crosses 999,I need to create another sort step(flat file).

Means if my include cond is more than 999 after running the program,I need to create 2 out put files that were having the frst 999 records in one file and the remaining in another file.
The number of include cond differs on each day.But the maximum will be 2000 only.


After the sort step I need to create 2 files like

first file :
Code:

SORT FIELDS=(7,12,CH,A)                                   
INCLUDE COND=((7,12,CH,EQ,X'aaaaaa'),OR,
              (7,12,CH,EQ,X'bbbbbbbbbbbbb'),OR,
              (7,12,CH,EQ,X'ccccc'),OR,
              (7,12,CH,EQ,X'ddddd'),OR,
              (7,12,CH,EQ,X'eeee'),OR,
                 .
                 .------------------------------->till 999 records


second file :
Code:

SORT FIELDS=(7,12,CH,A)                                   
INCLUDE COND= (7,12,CH,EQ,X'qqqq'),OR,
              (7,12,CH,EQ,X'wwww'),OR,
              (7,12,CH,EQ,X'jjjj').


Thanks in advance.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12372
Topics: 75
Location: San Jose

PostPosted: Mon Jul 05, 2004 12:57 pm    Post subject: Reply with quote

bprasanna,

You can use the vscore parm to increase the size.

Code:

PGM=SORT,PARM='SIZE=MAX,VSCORE=9000K'


Try it and even now if the job fails with excess cards then you have 3 options.

option 1:

Try to create 2 include cond on one line i.e

Code:

INCLUDE COND=((7,12,CH,EQ,X'aaaaaa'),OR,
(7,12,CH,EQ,X'bbbbbbbbbbbbb'),OR,(7,12,CH,EQ,X'ccccc'),OR,
(7,12,CH,EQ,X'ddddd'),OR, (7,12,CH,EQ,X'eeee'),OR,
...


By doing so , you are reducing the no: of include cond's to half.


Option: 2

You can use the parameter SAVE TO store all other conditions which are not included in the first pass

Code:

SORT FIELDS=(7,12,CH,A)
OUTFIL FNAMES=FIRST,INCLUDE=((7,12,CH,EQ,X'aaaaaa'),OR,
(7,12,CH,EQ,X'bbbbbbbbbbbbb'),OR,
(7,12,CH,EQ,X'ccccc'),OR,
(7,12,CH,EQ,X'ddddd'),OR,
(7,12,CH,EQ,X'eeee'),OR,
.
.------------------------------->999 record
  )
OUTFIL FNAMES=REST,SAVE


Now all the records which are not copied to FIRST file will be saved in the REST file.
You can use REST file as sortin for the remaining conditions.


option: 3

Try to generate OMIT conditions for the records you want to drop.


Hope this helps...

Cheers

kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
bprasanna
Beginner


Joined: 05 Sep 2003
Posts: 119
Topics: 33
Location: Hyderabad

PostPosted: Tue Jul 06, 2004 1:37 am    Post subject: Reply with quote

Kolusu,
Thanks for u r reply.But unfortunately nothing has worked out for me.Still I am getting the error
WER002A EXCESS CARDS when I use the SIZE VSCORE option.

The remaining options also not suitable for my requirement.Because
1) my include condition is having the length of 30 characters each.(so i could not code 2 include's in one line)
2)I can't use the SAVE REST option,because I need to inclde the SORT FIELDS option in the second file as well and
we need to include the ')' at the end of 999 include condition.
3)I am not sure whether I will always receive more than 999 cards in each day.Some times I may get less than 999 cards also.

Any other solution for this?

Thanks
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Tue Jul 06, 2004 3:00 am    Post subject: Reply with quote

Kolusu,
I am confused with option 1 that you posted above.

You are saying, Syncsort will not complain, if the INCLUDE is written 2 per line than one per line (in this particular situation where the number of INCLUDEs are large)? Because, if I see correctly, the number of conditions are still same only their 'formatting' has been changed.

BTW, bprasanna, can't the INCLUDEs be replaced with LT/LE and GT/GE? Your example shows, the strings to be included vary 'sequentially'.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12372
Topics: 75
Location: San Jose

PostPosted: Tue Jul 06, 2004 6:14 am    Post subject: Reply with quote

Cogito,

The poster had more than 1000 include conditions, and each condition is written on a separate line. so the total sysin cards are more than 1000 lines.

Some shops have the installation defaults , that if you have more than 1000 lines , then you will encounter an EXCESS CARDS ERROR. This is the error OP is facing.

My suggestion is to write 2 include conditions on one line, so that the no: of sysin cards are reduced by half.

Quote:

1) my include condition is having the length of 30 characters each.(so i could not code 2 include's in one line)


Bprassana,

I just noticed that you are coding your include cond in hex format. Since the field in question is of CHARACTER format, why not code the literals which is only 12 bytes.Then you can code 2 include conditions on one line.

Quote:

I can't use the SAVE REST option,because I need to inclde the SORT FIELDS option in the second file as well


The file is first sorted and then only your include condition is validated as it is coded on the OUTFIL. so the REST file from the SAVE option is already sorted on the specified fields.

Quote:

3)and we need to include the ')' at the end of 999 include condition. I am not sure whether I will always receive more than 999 cards in each day.Some times I may get less than 999 cards also.


Your first post mentions that you are dynamically generating the control cards. While generating the control cards itself can't you just code the closing paranthesis and the card for the REST file with SAVE OPTION?

Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
bprasanna
Beginner


Joined: 05 Sep 2003
Posts: 119
Topics: 33
Location: Hyderabad

PostPosted: Tue Jul 06, 2004 9:11 am    Post subject: Reply with quote

Kolusu/Cogito,

Here the problem is,, I was not supposed to touch the program which was creating these sort conditions.Actually I will get a flat file with all the sysin
cards as mentioned above.Now I need to divide this file into 2 files as shown above and one more thing is I may not get the records in sequence.Just to give the example I have shown the include conditions.

''The file is first sorted and then only your include condition is validated as it is coded on the OUTFIL. so the REST file from the SAVE option is already sorted on the specified fields.""

I tried by coding OUTFIL option with the SAVE,But I am getting the first file

like

Sort fields=(.....................)
Include cond=(xxxxxxxxxxxxxxxxxxx),
.
.
. ),

in one file

.
.
. ),

in other file.

Since I need to use this SYSIN cards in the subsequent steps in my jcl,I need to create the 2 seperate sort cards as I have shown in my firsr post.

Thanks
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12372
Topics: 75
Location: San Jose

PostPosted: Tue Jul 06, 2004 10:43 am    Post subject: Reply with quote

Bprassana,

Run the following job which will list out all the installed parameters in your shop for syncsort.

Code:

//STEP0100 EXEC PGM=SYNCTOOL     
//TOOLMSG   DD SYSOUT=*         
//DFSMSG    DD SYSOUT=*         
//OUT       DD SYSOUT=*         
//TOOLIN    DD *                 
  DEFAULTS LIST(OUT)             
/*


Now look at the listing in sysout. The parameter you are looking is MINCORE. That is the parameter which controls the sysin control cards. I am guessing that your shop has set it at <= 500k.

You can override this parameter up to 2M with the following override.

Code:

PGM=SORT,PARM='MINCORE=750K'


If 750K is not sufficient and you continue to have this problem, you can incrementally raise the MINCORE value. However, I do not recommend exceeding 2M.

Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
bprasanna
Beginner


Joined: 05 Sep 2003
Posts: 119
Topics: 33
Location: Hyderabad

PostPosted: Wed Jul 07, 2004 7:48 am    Post subject: Reply with quote

Kolusu,
Thanks for your reply.

I ran the JCL which u provided have provided. As you said the MINCORE value is around 500k.

Here are those details which I got in syout.

SYNCSORT RELEASE 1.1
--------------------------
*.MAXMERG = 8,OC
MAXWKSP = MAX
* MINCORE = 524288
*.MINMERG = 2
MINWKSP = 8
* MODSLNK = N
MSG = AP
* MSGCLAS = ABCD I

In the syout it has mentioned that
* - INDICATES A VALUE WHICH IS DIFFERENT FROM THE DEFAULT VALUE

When I changed this value to 2M,4M and 0M , still the job got the same error.It seems in our environmnet we are not allowed to over ride this parameter.If this one is not possible through SORT,I am plannig to write an EZT or COBOL program.

Thanks
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group