View previous topic :: View next topic |
Author |
Message |
cravindra Beginner
Joined: 30 Jul 2004 Posts: 5 Topics: 3
|
Posted: Wed May 18, 2005 4:35 am Post subject: Getting S106 abend. Not enough memory was available. |
|
|
Hi
I am facing following problem while running the job.
"
An error occurred during LINK(X), LOAD, ATTACH(X), or XCTL(X)
processing.
Not enough memory was available for FETCH to do a GETMAIN for the module or control blocks. "
I have increased the table occurs clause in a Cobol II program and try to run the program and getting the above problem. I have aleady used Region=0m parameter in the JCL and EXEC step. Without changing the aplication program, can I correct the above problem..
Your help is highly appreciated..
Thanks
Ravi. |
|
Back to top |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12380 Topics: 75 Location: San Jose
|
|
Back to top |
|
 |
cravindra Beginner
Joined: 30 Jul 2004 Posts: 5 Topics: 3
|
Posted: Wed May 18, 2005 9:36 am Post subject: |
|
|
Hi Kolusu,
Here is the message from JESLOG....
FETCH FOR MODULE CLDLQSBC FROM DDNAME JOBLIB
FAILED BECAUSE INSUFFICIENT STORAGE WAS AVAILABLE.
LIBRARY ACCESS FAILED FOR MODULE CLDLQSBC, RETURN CODE 24,
REASON CODE 26080021, DDNAME JOBLIB
ABEND CODE=S106
From Sysdump.
A B E N D - A I D PAGE 4
**************************************************
JOB G1NXRUTW STEP JSTEP104 TIME 072124 DATE 05138 ID = 000
COMPLETION CODE SYSTEM = 106 REASON CODE = 0000000C
PSW AT ENTRY TO ABEND 070C1000 81480D86 ILC 02 INTC 000D
PSW ADDRESS 01480D86 AT TIME OF ERROR DOES NOT POINT TO AN ACTIVE MODULE
I looked at the site that you pasted above, but could not get much to solve the issue. Let me know if you can add anything..
Thank you
Ravi. |
|
Back to top |
|
 |
dtf Beginner
Joined: 10 Dec 2004 Posts: 110 Topics: 8 Location: Colorado USA
|
Posted: Wed May 18, 2005 12:23 pm Post subject: |
|
|
Some questions, (the answers to which might help):
1. Is this a called routine, if so who is the caller? If the caller is assembler, it is possible that it is coded impropperly, and thus you are getting another copy of the program each time you call it.
2. How big is program CLDLQSBC? Is it huge, what did your change entail?
3. Is it possible that you are compiling CLDLQSBC with DATA(24), thus forcing the storage to be allocated below the line? This would make your user area much smaller.
4. What region parameter is on your EXEC or JOB card?
________
ROOR BONG PICTURES
Last edited by dtf on Tue Mar 15, 2011 5:01 am; edited 1 time in total |
|
Back to top |
|
 |
cravindra Beginner
Joined: 30 Jul 2004 Posts: 5 Topics: 3
|
Posted: Thu May 19, 2005 2:21 am Post subject: |
|
|
My Answers are below....
1. No. Its driver programm, not called from any other program. Its COBOL II program.
2. Its small program around 500 kines of code. But it reads a input file with 30K records with record length of 1500 bytes.. Presently its loading 5500 records ( With length 1500 ) into a internal table. Now we need to increase it to 6700 records as per the business requirements.
3. I am compiling with DATA(31). I dont know the importance of this parameter.
4. We have used 0M for Region.. tried using at both Job card and exec card..
Let me know if you need any more information...
Is it is a internal table limit in cobol / mvs....??
Thanks
Ravi.
3. |
|
Back to top |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12380 Topics: 75 Location: San Jose
|
Posted: Thu May 19, 2005 6:32 am Post subject: |
|
|
cravindra,
Did you link-edit your pgm as RMODE ANY? . Just because you compiled it data(31) does not gurantee you to run above the line.
Your Internal table size is within limits. The max limit is 16 mb and you increased internal table is around 10 or 11 MB. so you should be fine with that.
Try coding this parm and see if it works
Code: |
//STEP0100 EXEC PGM=YOURPGM,PARM='/ALL31(ON)'
|
Hope this helps...
Cheers
kolusu _________________ Kolusu
www.linkedin.com/in/kolusu |
|
Back to top |
|
 |
dtf Beginner
Joined: 10 Dec 2004 Posts: 110 Topics: 8 Location: Colorado USA
|
Posted: Thu May 19, 2005 11:56 am Post subject: |
|
|
Kolusu,
Good point concerning the link edit. Perhaps this will do the trick.
Quote: | 3. I am compiling with DATA(31). I dont know the importance of this parameter. |
Basically this tells the compiler to generate code allowing 31 bit addressing. Unless you are interfacing with legacy code you probably always want to use this. If you are interfacing with old assembler programs, or vs COBOL there may be instances where you'd need to use data(24).
As Kolusu points out though, if you do not have your linkage parm set properly, you could still end up "below tht line". This greatly reduces the available storage for your program.
If this is not the solution to your problem, I guess we'll have to dig deeper.
DTF
________
weed vaporizer |
|
Back to top |
|
 |
|
|