Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

CICS abend 4094 - EXEC CICS return error

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CICS
View previous topic :: :: View next topic  
Author Message
rahulz5

New User


Joined: 02 Sep 2010
Posts: 3
Location: Chennai

PostPosted: Tue Oct 19, 2010 4:23 pm    Post subject: CICS abend 4094 - EXEC CICS return error
Reply with quote

Hi,

This is my first post here.
I have coded a CICS module. My transaction fails and I get the following error:
DFHAC2206 06:19:10 MBCICM Transaction QTEN failed with abend 4094. Updates to local recoverable resources backed out.

This is the flow. The first time map is displayed correctly. Once I key in data to fetch values for display on the map I get the ABEND. The code works fine in COBOL2 load. When I stage it in endevor and test with endevor I get the above issue. After a day of beating my head on the wall I feel the program flows till CICS return statement. I put in a few displays. The last statement displayed in the CICS region batch job is one present before return.

This is my return statement.
EXEC CICS RETURN
TRANSID ('XXXX')
COMMAREA (WS-COMMAREA)
LENGTH (LENGTH OF WS-COMMAREA)
END-EXEC

This is most likely storage exception error from whatever little I'm able to make out from the CICS dump.

I feel it might be something silly but beats me. Please let me know if anyone has a solution.

Thank you very much
Back to top
View user's profile Send private message

Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2502
Location: Atlanta, Georgia, USA

PostPosted: Tue Oct 19, 2010 4:38 pm    Post subject: Reply to: CICS abend 4094 - EXEC CICS return error
Reply with quote

This looks to be an LE (Language Environment) abend code, unless someone coded an XC ABEND('4094') API.

Search the forum for Language Environment or Google....

Bill
Back to top
View user's profile Send private message
rahulz5

New User


Joined: 02 Sep 2010
Posts: 3
Location: Chennai

PostPosted: Thu Oct 21, 2010 11:45 am    Post subject:
Reply with quote

I'm still stuck with the ABEND.

Bill. I searched forums but I came up with blanks. However, in a couple of other posts I checked. Someone mentioned to look up the information mentioned below.

The following are the error messages I found in the dump:
CEE1000S z/OS INTERNAL ABEND. ABCODE = 4094 REASON = 00000018
DFHSM0102 MBCICM A storage violation (code X'0F0C') has been detected by module DFHSMAR.
IEA794I SVC DUMP HAS CAPTURED: 004

I looked up the error description and this is what i found.
For ABEND 4094 and Reason code= 18
X'18' (24)
Storage management could not properly free stack and/or heap storage. This might be due to writing beyond storage.

The Abend either usually occurs after/while to a CALL issued in the module. Or the ABEND occurs when/before executing return statement. Rarely the module manages to work fine.

Can you anyone help me how to analyze the root cause further?
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10211
Location: italy

PostPosted: Thu Oct 21, 2010 12:00 pm    Post subject: Reply to: CICS abend 4094 - EXEC CICS return error
Reply with quote

Quote:
DFHSM0102 MBCICM A storage violation (code X'0F0C') has been detected by module DFHSMAR.


the message is clear , somebody clobbered the SA ( storage accounting headers and trailers )
by moving somewhere more than it was supposed to do ( usually an out of range condition for an index )

the storage violations abends are the most difficult to diagnose,
quite often the abending transaction is the victim not the actor/culprit

the only way of properly debugging the issue is to look at the storage dump
to get an hint ( from the content of the overlayed storage ) about the culprit
Back to top
View user's profile Send private message
rahulz5

New User


Joined: 02 Sep 2010
Posts: 3
Location: Chennai

PostPosted: Thu Oct 21, 2010 2:14 pm    Post subject:
Reply with quote

thanks enrico..
The ABEND has been resolved.
The ABEND was occuring at a CALL to one program. I made a few changes to my code but I'm not sure which one resolved it.

1. Placed a period after all the variables of the call statement. There were multiple variables sent. Call WS-X USING X Y Z.
2. Changed the size of working storage used in the return transaction statement to be equal to DHFCOMMAREA size. Earlier DFHCOMMAREA size was greater.
3. Changed the size of working storage variable used in the LINK to another program to be equal to DHFCOMMAREA size declared in the linkage section of the LINK module. Earlier DFHCOMMAREA size was greater than the size of the working storage used in COMMAREA parameter of the LINK.

However, one thing is the code without the above changes runs fine in COBOL II compiler load.

My last question is for the following scenario.
A transaction ABCD invokes program A. Program A issues a CALL to program B, a LINK to program C and an XCTL to program D. Assuming the a combinations 3 events can occur what would be the ideal way to declare and pass commarea. Or what rule should not be violated?
For ex. EXEC CICS LINK PROGRAM (C)
COMMAREA (WS-ABCD-COMM)
LENGTH (X)
END-EXEC
Size of DFHCOMMAREA declared in A = P
Size of DFHCOMMAREA declared in C = Q
Size of DFHCOMMAREA declared in D = R
Size of all the variables used in calling B = S
Working storage variable size used in COMMAREA to invoke C= X
Working storage variable size used in COMMAREA to invoke D= Y
Working storage variable size used in COMMAREA to return to A= Z

An example of sample answer I'm looking for is," P should be equal Z. S does not impact in any way......".

The answer could help me figure out what went wrong here. I think this is a noob question but if someone could clarify it for me, I would greatful for their reply.
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2502
Location: Atlanta, Georgia, USA

PostPosted: Thu Oct 21, 2010 3:33 pm    Post subject: Reply to: CICS abend 4094 - EXEC CICS return error
Reply with quote

Add this to your arsenal - "Debugging Storage Violations in CICS"

http://www-01.ibm.com/support/docview.wss?uid=swg27007891&aid=1

Note that it's downloadable as a PDF....

Bill
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CICS All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts CICS transaction slow response time vasanthz All Other Mainframe Topics 1 Thu Jan 19, 2017 1:31 am
No new posts How to Capture the Max return code of... anilkumar922 All Other Mainframe Topics 0 Thu Jan 12, 2017 12:02 pm
No new posts OO COBOL compile error Virendra Shambharkar COBOL Programming 3 Tue Jan 10, 2017 6:05 pm
No new posts INDEPENDENT CICS TS 4.1 MRO REGION UP... Kyle Carroll CICS 0 Wed Dec 14, 2016 6:55 pm
No new posts CICS START AND CANCEL blayek CICS 1 Wed Dec 07, 2016 3:27 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us