Just looking for input as to whether this is "working as designed"
before I report it as a defect...
If a program that uses CEEPIPI to call HLL subroutines abends while
*not* in any of the HLL subroutines, LE recovery processes the abend and
transforms a system abend into a LE user abend. Meanwhile, the
associated dump is written to SYSUDUMP rather than CEEDUMP.
This situation can be recreated by using the samples "ASMPIPI" and
"HLLPIPI" from the LE Programming Guide", and adding the abend of your
choice (I used EX 0,*) after the label TSUB in ASMPIPI. Instead of
seeing a ABENDS0C3 in ASMPIPI, you will see a ABENDU4036-2 associated
with CEEPLPKA. The only sign of the original abend is in the system
trace table. Needless to say, LE's recovery routines have not made a
positive contribution to locating the original problem.
One of the requirements for a program that uses CEEPIPI to call
LE-conforming HLL routines is that the calling routine *not* be a
LE-conforming program, so it seems nonsensical on the surface that LE's
recovery routines would try to interpret the abend.
The LE Programming Guide says:
- init_sub creates a LE environment and "sets the environment dormant so
that exceptions are percolated out of it.
- for call_sub, CEEPIPI activates the LE environment before the called
routine is invoked, and after the called routine returns, the
environment is dormant.
It appears to me that LE is doing an incomplete job of
ignoring/percolating abends that occur while outside of the LE
environment. Does anyone know anything to the contrary?
Thanks!
--
Regards, Gord Tomlin
Action Software International
(a division of Mazda Computer Corporation)
Tel: (905) 470-7113, Fax: (905) 470-6507, [email protected]
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html