View previous topic :: View next topic
|
Author |
Message |
zhouqina
New User
Joined: 24 May 2007 Posts: 8 Location: china
|
|
|
|
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 |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
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 |
|
|
zhouqina
New User
Joined: 24 May 2007 Posts: 8 Location: china
|
|
|
|
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 |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Are you aware of what "recursive" means? It is a big clue, probably. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
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 |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
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 |
|
|
zhouqina
New User
Joined: 24 May 2007 Posts: 8 Location: china
|
|
|
|
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 |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
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 |
|
|
|