IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Cics storage violation


IBM Mainframe Forums -> CICS
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Venkata Ramayya

New User


Joined: 03 Dec 2007
Posts: 49
Location: United States

PostPosted: Thu Nov 07, 2019 12:45 am
Reply with quote

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
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Thu Nov 07, 2019 2:04 am
Reply with quote

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
View user's profile Send private message
dneufarth

Active User


Joined: 27 Apr 2005
Posts: 419
Location: Inside the SPEW (Southwest Ohio, USA)

PostPosted: Thu Nov 07, 2019 2:04 am
Reply with quote

GETMAIN size? Successful?

Table size? Loading table exceed allowable entries max value?
Back to top
View user's profile Send private message
Venkata Ramayya

New User


Joined: 03 Dec 2007
Posts: 49
Location: United States

PostPosted: Thu Nov 07, 2019 2:46 am
Reply with quote

@ 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
View user's profile Send private message
Venkata Ramayya

New User


Joined: 03 Dec 2007
Posts: 49
Location: United States

PostPosted: Thu Nov 07, 2019 2:49 am
Reply with quote

@ dneufarth:
GETMAIN size? Successful? - Getmain size is 308400000 and is successful
Looks like freemain fails
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Thu Nov 07, 2019 3:31 am
Reply with quote

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
View user's profile Send private message
dneufarth

Active User


Joined: 27 Apr 2005
Posts: 419
Location: Inside the SPEW (Southwest Ohio, USA)

PostPosted: Thu Nov 07, 2019 3:33 am
Reply with quote

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
View user's profile Send private message
Rohit Umarjikar

Global Moderator


Joined: 21 Sep 2010
Posts: 3049
Location: NYC,USA

PostPosted: Thu Nov 07, 2019 7:53 am
Reply with quote

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
View user's profile Send private message
Venkata Ramayya

New User


Joined: 03 Dec 2007
Posts: 49
Location: United States

PostPosted: Thu Nov 07, 2019 8:42 pm
Reply with quote

@ 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
View user's profile Send private message
Venkata Ramayya

New User


Joined: 03 Dec 2007
Posts: 49
Location: United States

PostPosted: Thu Nov 07, 2019 8:46 pm
Reply with quote

@ 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
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Thu Nov 07, 2019 10:13 pm
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CICS

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts CLIST - Virtual storage allocation error CLIST & REXX 5
No new posts Calling an Open C library function in... CICS 1
No new posts How to 'Ping' a CICS region in JCL CICS 2
No new posts Parallelization in CICS to reduce res... CICS 4
Search our Forums:

Back to Top