View previous topic :: View next topic
|
Author |
Message |
Venkata Ramayya
New User
Joined: 03 Dec 2007 Posts: 49 Location: United States
|
|
|
|
Hello,
Need help on storage violation issue I have been struggling from past couple of days.
We defined a internal table (using 300000 occurs) in the program. We allocate table space using Getmain and once the table is done processing we call freemain. Somehow table size with 300000 occurrences causing storage violation issue. Is there any limit to the table size in comics? I’m not able to figure out where is this happening . Any help would be appreciated.
Thanks
Venkat |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
You left out a lot of CRITICAL information that would be needed to help you:
- 300000 occurrences means nothing -- is each occurrence 1 byte or 1000 bytes or some other value (that can make a difference)?
- are the occurrences coming from below the line storage or above the line storage (i.e., how is the EXEC CICS GETMAIN coded)?
- how many times does the transaction get invoked simultaneously? |
|
Back to top |
|
|
dneufarth
Active User
Joined: 27 Apr 2005 Posts: 420 Location: Inside the SPEW (Southwest Ohio, USA)
|
|
|
|
GETMAIN size? Successful?
Table size? Loading table exceed allowable entries max value? |
|
Back to top |
|
|
Venkata Ramayya
New User
Joined: 03 Dec 2007 Posts: 49 Location: United States
|
|
|
|
@ Robert Sample:
300000 occurrences means nothing -- is each occurrence 1 byte or 1000 bytes or some other value (that can make a difference)? Each occurrence is 1028 bytes
- are the occurrences coming from below the line storage or above the line storage (i.e., how is the EXEC CICS GETMAIN coded)?
77 ws-full-word-Len pic s9(9) usage comp value zero
77 ws-blank pic x(01) value space
Move length of worktable to ws-full-word-Len
Exec cics Getmain
Set (tbl-Ptr)
Flength(ws-full-word-Len)
Initimg(was-blank)
Resp(cicadas-resp)
Resp2(cicadas-resp2)
End-exec
- how many times does the transaction get invoked simultaneously? One time |
|
Back to top |
|
|
Venkata Ramayya
New User
Joined: 03 Dec 2007 Posts: 49 Location: United States
|
|
|
|
@ dneufarth:
GETMAIN size? Successful? - Getmain size is 308400000 and is successful
Looks like freemain fails |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
Is there any limit to the table size in comics (sic)? |
There are actually two limits involved -- the first is the value of EDSALIM which provides the absolute limit of storage that GETMAIN can get. The second is the available memory, which is the difference between EDSALIM and the actual memory in use (which you cannot know -- at least not without a monitor such as OMEGAMON or MAINVIEW).
Are you getting an actual storage violation message in the log? Or are you getting an ABEND? Or, what is telling you that you have a CICS storage violation? What makes you think the FREEMAIN is failing? How do you know that there is only one transaction being invoked -- TRANCLASS? |
|
Back to top |
|
|
dneufarth
Active User
Joined: 27 Apr 2005 Posts: 420 Location: Inside the SPEW (Southwest Ohio, USA)
|
|
|
|
Might try over-allocating GETMAIN by a few MBs. See if problem still happens.
What is the table entry count upon failure? Any way table count is exceeded {or routine reading/writing (MOVE, REF MODIFICATION) entries excedes 300,000 entries}? |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
You might as well consider checking MEMLIMITs and REGION parameter of the JOB if that’s changed recently or insufficient for this size.
You also needs to provide all the information related to this failure from the dump or logs. |
|
Back to top |
|
|
Venkata Ramayya
New User
Joined: 03 Dec 2007 Posts: 49 Location: United States
|
|
|
|
@ Robert Sample:
Are you getting an actual storage violation message in the log? - yes in CICS log
Or are you getting an ABEND? Or, what is telling you that you have a CICS storage violation? - we see Abend in Fault analyzer
What makes you think the FREEMAIN is failing? Based on the offset value..it closes near by freemain.
How do you know that there is only one transaction being invoked -- TRANCLASS? - we are trying to test specific transaction only
How to use edsalim in getmain? Is there a syntax? |
|
Back to top |
|
|
Venkata Ramayya
New User
Joined: 03 Dec 2007 Posts: 49 Location: United States
|
|
|
|
@ dneufarth:
We reduced table size to 100000 even then we get storage violation
The difference we see between 100k and 300k. In case of 100k transaction is successful where as in 300k case data gets corrupted at the end |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
How to use edsalim in getmain? Is there a syntax? |
EDSALIM is not a setting that you can use in GETMAIN. EDSALIM is usually set in the system initialization table (SIT) which is read during CICS start up for the region. Depending upon the site, it may -- or may not -- be possible to use CEMT to change it. CEMT I SYSTEM will show you the current value.
Is the transaction coded pseudo-conversational or conversational? If it is pseudo-conversational, what method do you use to preserve the value of the SET pointer in the GETMAIN so it can be used with the FREEMAIN?
Quote: |
In case of 100k transaction is successful where as in 300k case data gets corrupted at the end |
Data corruption is an entirely separate issue and should be a different thread than the CICS storage violation. |
|
Back to top |
|
|
|