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

Need guidelines from CICS expert to debug storage violation


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

Active User


Joined: 28 Jun 2010
Posts: 102
Location: chennai

PostPosted: Thu Dec 20, 2012 5:56 pm
Reply with quote

Hi,

I am getting storage violation in and from the few dump got the module name in freemain step. due to this the region became unstable and fluctuating. After removing the code the region is stable.But i can't able to debug why this is happening. The same code working fine in testing environment, only getting SV in production environment due to multiple transaction at same time.

I need some help from CICS expert those who know very well about this SV debugging. I read the manual which is sharing in this forum for the same topic, but they are using some VERBXIT command using IPCS tool. Here we doesn't have that tool.

We are using abendaid, I know its a compuware tool and we should not share the manual directly. So atleast i just want some guidelines like from which option or area we can get the address details exactly causing storage violation and need to confirm because of which modules.

Please help me on this. here i am facing some difficulty to get a CICS expert guidance.



Code:

The CICS message associated is: DFHSM0102 NCICSTEA A storage violation
(code X'030B') has been detected by module DFHSMGF.                   



Thanks in advance.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Thu Dec 20, 2012 8:01 pm
Reply with quote

Hello,

If you are using abendaid and have a license to use it, the material is available for free from Compuware Support.

You could also open an issue with Compuware Support. . .
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 Dec 20, 2012 8:04 pm
Reply with quote

Actually, I believe IPCS is available at your site -- you just don't have access to it.

Your best bet would be to talk to your site support group and get a CICS trace run to analyze. Storage violations can be difficult to debug since the perpetrator may be located a long way from where the storage violation appeared. Abend Aid may -- or may not -- be much use in debugging the problem.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Thu Dec 20, 2012 8:05 pm
Reply with quote

the usual advice when dealing with storage violation ...
the abending program might be an innocent victim
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1193
Location: Dublin, Ireland

PostPosted: Thu Dec 20, 2012 8:45 pm
Reply with quote

I would agree with Enrico's comment.
Many years ago, I debugged a storage violation which caused other transactions to abend and made the CICS region unstable (sometimes locking-up, sometimes abending). This only happened when we hit production volumes. In that case, the problem was caused by a mismatch in COMMAREA sizes where one program was overwriting an area which was beyond the actual end of the allocated COMMAREA. All was OK until that overlay acess corrupted an adjoining TCA in memory causing the 'victim' TCA-owning transaction to abend.

Garry.
Back to top
View user's profile Send private message
Gopalakrishnan V

Active User


Joined: 28 Jun 2010
Posts: 102
Location: chennai

PostPosted: Fri Dec 21, 2012 2:58 pm
Reply with quote

Thanks everyone..

Hi Garry,
Here also the prob due to COMMAREA it seems..it having nearly 300k bytes. Can you please just elaborate how you resolved your SV issue.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Fri Dec 21, 2012 3:07 pm
Reply with quote

Quote:
Here also the prob due to COMMAREA it seems..it having nearly 300k bytes. Can you please just elaborate how you resolved your SV issue.


You will have to follow TWO path


1) hope that the SV was caused and discovered in the same program call chain
check that all the storage areas being passed around are used properly
(E.G. passing 100 bytes using 200 , array bounds usage )

after 1 fails
2) the SV is caused by random bytes sprinkles
look at the storage found corrupted and from its content try to find out the offending program chain
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Fri Dec 21, 2012 3:09 pm
Reply with quote

And since COMMAREA has a maximum length of around 32k, what exactly are you talking about when you say it is 300k?
Back to top
View user's profile Send private message
prino

Senior Member


Joined: 07 Feb 2009
Posts: 1306
Location: Vilnius, Lithuania

PostPosted: Fri Dec 21, 2012 3:23 pm
Reply with quote

At a former client the decision was made to compile all programs with SUBSCRIPTRANGE condition enabled, even for the production environment. Yes, there is some overhead, although in recent versions from PL/I this has apparently been reduced, but the overhead was considered well worth it.
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1193
Location: Dublin, Ireland

PostPosted: Fri Dec 21, 2012 3:45 pm
Reply with quote

In our case the diagnosis was in-depth and required IBM assistance. Essentially, knowing the corruption in the TCA, we modified trace so that, every time an EXEC CICS was executed in ANY task, we checked for the corruption in the TCA chains and abended CICS with a dump once the corruption was found. Since everything was OK at one trace point, we know which task had caused the corruption and could home in on the program location.

Not an easy task and with considerable CPU overhead - a method that should be avoided unless all else fails.

Garry.
Back to top
View user's profile Send private message
Gopalakrishnan V

Active User


Joined: 28 Jun 2010
Posts: 102
Location: chennai

PostPosted: Fri Dec 21, 2012 4:54 pm
Reply with quote

Quote:

And since COMMAREA has a maximum length of around 32k, what exactly are you talking about when you say it is 300k?


Bill,
Sorry that is total linkage section size. i hope COMMAREA is differnt from normal linkage values passing method.
Here we are not using the COMMAREA word, instead directly using Linkage section to pass the values to other moduels by coding few copy books. that total size of the linkage section is around 300k bytes.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Fri Dec 21, 2012 5:16 pm
Reply with quote

nobody around here cares about the size You are using ....

the important thing is that You should ensure that ALL the copy books are included in ALL the programs involved

in order not to have any length mismatches !!!

what is that is not clear in the above concept ?
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