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 transaction abend with '4087' reason '00000007'

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

New User


Joined: 24 May 2007
Posts: 8
Location: china

PostPosted: Fri Jul 29, 2011 2:44 pm    Post subject: CICS transaction abend with '4087' reason '00000007'
Reply with quote

Hi all,

I haven't met the abend '4087' before. This abend looks very strange. The error message in CICS job log is 'Heap storage control information was damaged.'. May anyone has any ideas about this?

Which would cause the heap storage control information be damaged by CICS program?

Best regards,
Zhouqina.
Back to top
View user's profile Send private message

Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7251

PostPosted: Fri Jul 29, 2011 2:46 pm    Post subject: Re: CICS transaction abend with '4087' reason '00000007'
Reply with quote

zhouqina wrote:
Hi all,

I haven't met the abend '4087' before. This abend looks very strange. The error message in CICS job log is 'Heap storage control information was damaged.'. May anyone has any ideas about this?

Which would cause the heap storage control information be damaged by CICS program?

Best regards,
Zhouqina.


Program error.

Edit: Have you checked out the reason code as well with the message id?
Back to top
View user's profile Send private message
zhouqina

New User


Joined: 24 May 2007
Posts: 8
Location: china

PostPosted: Fri Jul 29, 2011 3:34 pm    Post subject:
Reply with quote

I could only find the description for U4087 - a recursive error happen.
And the reason code '07' is for language environment error.

As now, I find that one program's commarea with 'OCCURS DEPENDING ON' statement. I guess this cause the error. After I remove this statement, however, the same error happened again.

And then I try to remove this program from the transaction, the transaction can be executed successfully. Below is the program calling method:

exec cics link(P1)
datalength(L1)
commarea(A1)
length(L1)
resp(R1)
end-exec.

P1, L1 and A1 are declared in LINKAGE SECTION. They are passed from another program through CALL.
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7251

PostPosted: Fri Jul 29, 2011 3:45 pm    Post subject: Reply to: CICS transaction abend with '4087' reason '0000000
Reply with quote

Are you aware of what "recursive" means? It is a big clue, probably.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7932
Location: Bellevue, IA

PostPosted: Fri Jul 29, 2011 5:02 pm    Post subject:
Reply with quote

Quote:
Which would cause the heap storage control information be damaged by CICS program?
Table index (or subscript) greater than the size of the table
Table index (or subscript) less than 1
If using COBOL, using items in LINKAGE SECTION without establishing addressability
If using COBOL, using pointers without establishing addressability
and the list goes on ... lots of possible reasons

The recursion most likely refers to the LE abend process, which was trying to output a message when another condition occurred -- if your heap storage is damaged, that could explain the recursive messages. It does not, however, explain your original problem. Look at the CICS message log for the first error, or use CEDF (or another debugging tool) to track what happens in your program.
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7251

PostPosted: Fri Jul 29, 2011 5:37 pm    Post subject: Reply to: CICS transaction abend with '4087' reason '0000000
Reply with quote

Thanks Robert.

Sorry zhouqina. I hope you haven't been going round in circles trying to find out what recursive means...

Back, then, to all the standard stuff as Robert has said.

Most likely thing is what you changed last, or some part of the program not tested before. Subscripts, indexes, pointers, linkage (your and to other modules).
Back to top
View user's profile Send private message
zhouqina

New User


Joined: 24 May 2007
Posts: 8
Location: china

PostPosted: Wed Aug 03, 2011 2:41 pm    Post subject:
Reply with quote

Thanks god! Problem resolved!

The root reason is the wrong length in GETMAIN function. The length is shortter than the acctual COPYBOOK length.

In other words, program is trying to write content to the memory that is already allocated to another program.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7932
Location: Bellevue, IA

PostPosted: Wed Aug 03, 2011 4:45 pm    Post subject:
Reply with quote

Thanks for letting us know the solution. And programs using wrong lengths for GETMAIN and copy books can definitely cause heap storage overlays!
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 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
No new posts How does a called pgm know if its cal... Graeme Westerman COBOL Programming 4 Tue Nov 29, 2016 9:25 pm
No new posts IMS BMP program causes 878 system abend Artemk IMS DB/DC 7 Tue Nov 22, 2016 8:26 pm


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