View previous topic :: View next topic
|
Author |
Message |
Sivanesh
New User
Joined: 12 May 2011 Posts: 10 Location: India
|
|
|
|
Hi,
One of my job in production abended with U4088 with reason code 7A while executing a Enterprise PLI program. When i look into the SYSABEND (Abendaid) dump it has the message as below .I was not able to get anything from SYMDUMP in IPCS.When i searched in the IBM PUBlib ,i could find LE abend code U4088,however there was no explanation for reason code 007A.
I gave compiler options SIZE(MAX),STORAGE.... and REGION=0M,DYNAMNBR=100 in JCL but no use.
The input file(PS,F) for the program has 532 records for same insurance policy,i know it has duplicate records and the pupose of the PLI program is to remove the duplicates .When i remove 216 records exactly ,the program executes fine and there was no 4088.
I have no idea how to use the SYMDUMP in IPCS ,but i have posted a part of SYSMDUMP below.
Error:
"During stack increment processing an invalid stack segment was found"
I`m using z/OS 01.12.00.
Any of your help on this issue would be much appreciated.Thank you!!!!
------------------------SYMPTOM DUMP------------------------------------
IEA995I SYMPTOM DUMP OUTPUT 965
USER COMPLETION CODE=4088 REASON CODE=0000007A
TIME=01.09.53 SEQ=23510 CPU=0000 ASID=0037
PSW AT TIME OF ERROR 078D1600 80008F24 ILC 2 INTC 0D
ACTIVE LOAD MODULE ADDRESS=00007160 OFFSET=00001DC4
NAME=CEEBINIT
DATA AT PSW 00008F1E - 00181610 0A0DA7F4 001C1811
AR/GR 0: 00000000/84000000 1: 00000000/84000FF8
2: 00000000/0000007A 3: 00000000/25F0CF18
4: 00000000/000D3000 5: 00000000/8000F8E8
6: 00000000/00023340 7: 00000000/000237F0
8: 00000000/80000000 9: 00000000/000253FC
A: 00000000/00000001 B: 00000000/80008E50
C: 00000000/80024B88 D: 00000000/000D3018
E: 00000000/8000F956 F: 01000002/0000007A
END OF SYMPTOM DUMP
-------------------------------------------END oF SYMPTOm DUMP--------------
------------------------------AbendAid---------------------------------------------
A Language Environment U4088 abend occurred.
*******************************************
* Analysis of Error *
*******************************************
Language Environment issued user abend 4088, reason code 0000007A.
A storage condition has occurred during processing of a storage
condition.
During stack increment processing an invalid stack segment was found.
*******************************************
* Error Location *
*******************************************
The location of the error could not be resolved to an application
program.
-------------------------End Abend Aid--------------------------------------------
-----------------------------SYMDUMP---(Analyze)-------------------------------
BLS18058I Warnings regarding STRUCTURE(Pvt) at ASID(X'0001') FFB250:
BLS18059I Located via STRUCTURE(Cvt) at ASID(X'0001') FDAE88
BLS18300I Storage not in dump
---------------------------------------------------------------------------------
[/img] |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
Back to top |
|
|
Sivanesh
New User
Joined: 12 May 2011 Posts: 10 Location: India
|
|
|
|
Thanks Peter.
From LE Run-Time messages manual for U4088 - X'7A' 122,
For reason codes 91–20x, probable internal malfunction or storage corruption.Use the STORAGE run-time option to get more information about the environment leading up to the out-of-storage condition or allow a user handler to get control and respond to the condition.
registers at the time of error,
R0 R2 R4
4866E83AB8000000 4865616B58000000 4280000000000000
R6
0000000000000000
It states that its a program error,I don't know how to locate the line of program that has the problem.
Can u pls let me know how to locatate the lline of code that has issue and whats needs to be done? |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Quote: |
*******************************************
* Error Location *
*******************************************
The location of the error could not be resolved to an application
program.
|
Sorry,
cant help you |
|
Back to top |
|
|
Sivanesh
New User
Joined: 12 May 2011 Posts: 10 Location: India
|
|
|
|
Peter,Thanks for looking into this...
Can we do anything with the offset or addresses to locate the program. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
Can we do anything with the offset or addresses to locate the program. |
Why do you want to do this? Since the system has already told you that it is SYSTEM, not APPLCIATION, related, unless you work for IBM and can get into the source for the LE run-time programs, you have no business monkeying with that address since there's nothing you can do with it, anyway. |
|
Back to top |
|
|
Sivanesh
New User
Joined: 12 May 2011 Posts: 10 Location: India
|
|
|
|
Hi Robert,
So.What i need to do with these abends to resovle other than stripping off the record from the input file? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
Quote: |
So.What i need to do with these abends to resovle other than stripping off the record from the input file? |
fix the program so that it does not clobber storage when processing more than 216 records
isn' that obvious |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
I echo enrico's suggestion. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
follown on...
just follow the hint given by the manual...
Quote: |
Use the STORAGE run-time option to get more information about the environment leading up to the out-of-storage condition or allow a user handler to get control and respond to the condition. |
|
|
Back to top |
|
|
Sivanesh
New User
Joined: 12 May 2011 Posts: 10 Location: India
|
|
|
|
Hi Enrico,
I ran with STORAGE compiler option from starting.Do i need to look for any particular thing?... i Just posted whatever i got and no clue for me to pursue futher. |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
|
|
|
|
Quote: |
The input file(PS,F) for the program has 532 records for same insurance policy,i know it has duplicate records and the pupose of the PLI program is to remove the duplicates . |
Just curious.... why not scrap this program and use DFSORT (or SYNCSORT) to remove those pesky duplicates?
Garry. |
|
Back to top |
|
|
Sivanesh
New User
Joined: 12 May 2011 Posts: 10 Location: India
|
|
|
|
I got this fixed today,i got few arrays in the program ,i just increased the size of the array and included SIZE(MAX) process option.
Garry, it has other business functionalities other than removing duplicates.So i was not use utilities.
Thanks for evryone's help on this..... |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1306 Location: Vilnius, Lithuania
|
|
|
|
Next time compile your program with SUBSCRIPTRANGE, STRINGRANGE, SIZE and STRINGSIZE prefixes and you will get a decet messagewhen you exceed array bounds. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
And how about fixing the code, so you only get the messages from Prino's excellent suggestion when something is screwed, not just as a matter of course when you fill a table and continue wandering on down through the program, stomping and stamping until something, sometimes, maybe, if you are lucky, goes BANG!
EDIT:
Quote: |
...the pupose of the PLI program is to remove the duplicates |
Quote: |
Garry, it has other business functionalities other than removing duplicates. |
Now that you've got me all picky, what's that all about? Which of these quotes do you regard as "wrong"? The misleading one, or the cover-up?
Further EDIT:
Quote: |
I gave compiler options SIZE(MAX) |
Quote: |
i just increased the size of the array and included SIZE(MAX) process option. |
Just picky.
I suppose since you only fixed it about 10%, you didn't think to thank enrico for pointing out the obvious. Remember, if you don't do it properly, it'll mess up again when it reaches your new table limits. |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
If you can somehow pass the number of records in the file to the program, along with the record-length, you can use several methods of Dynamic Storage Allocation, such as "CONTROLLED" (PL/I), Callable Service routine "CEEGTST" (LE), or STORAGE OBTAIN/MVS GETMAIN (z/OS, sub-program required).
So, you can dynamically build the array each time and you won't have to worry about not allocating enough storage.
Just another idea....
Mr. Bill |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1306 Location: Vilnius, Lithuania
|
|
|
|
Sivanesh wrote: |
... and included SIZE(MAX) process option. ... |
Which has abso-fwecking-lutely nothing, zero-point-zero, zilch to do with the final load module. |
|
Back to top |
|
|
Sivanesh
New User
Joined: 12 May 2011 Posts: 10 Location: India
|
|
|
|
Lots of thanks to enrico and prino,
I never misleading or forget to thank anyone lol... .. you guys are doing great job
After i exhauseted ,I got created a SV dump and figured out the exact location of the program,which had the static array. Now, I changed that to dynamic one and changed the size compiler option to MAX,it worked.
Thanks Guys!!! |
|
Back to top |
|
|
|