>I call out to assembler and establish the ESTAE after LE initialization -- in 
>my application code, in other words. 


From the LE Programming Guide, topic "System Services available to assembler 
routines":
"The system-provided service should not be used. If you use this service, 
itdirectly interferes with the Language Environment environment. For example, 
any ESTAE or ESPIE that you issue interferes with Language Environment 
condition handling."


The interference may result in LE unregistering — what it considers to be its 
own — current ESTAE routine as result of some error handling invoked via LE's 
ESPIE routine. But the current ESTAE routine is in fact the one you established 
after LE's initialization. So your ESTAE routine may not get control in certain 
(program check) cases. 


You may think that you then better establish your own ESPIE routine as well, 
thereby disabling LE's ESPIE routine, so the case describe above cannot occur. 
That is true, however, modern COBOL compilers (i.e. V5 and up) may generate 
code that may raise 00A program checks when you would not expect them. LE's 
ESPIE routine handles them efficiently. Without LE's ESPIE routine, this may 
become a performance nightmare.


I've learned all this from the analyzing and finally solving problem we've been 
facing with RAI's Smart/Restart earlier this year. Search the archive for 
"Smart/Reestart", or "00A program check", or "S0CA", if you're interested in 
the whole story.


-- 
Peter Hunkeler

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to