From:  MVS Programming: Assembler Services Guide

Deactivating an ESTAE-type recovery routine

A program may deactivate an ESTAE-type recovery routine only under the same
linkage stack level as the level that existed when the program activated the
recovery routine. This rule affects programs that add entries to the linkage
stack either through the BAKR or PC instruction. Failure to follow this rule
results in an error return code of 36 from the ESTAE or ESTAEX macro.

When you issue a PR, the system automatically deactivates all ESTAE-type
recovery routines that were previously activated under that current linkage
stack entry.


On Wed, 31 Aug 2016 19:18:32 +0000 "Blaicher, Christopher Y."
<[email protected]> wrote:

:>Here is the code; mainline code calls RECOVERY subroutine then does an 0C1
:>
:>
:>         WTO   'CALLING RECOVERY'
:>         JASL  R14,RECOVERY           SET UP RECOVERY
:>         LTR   R15,R15                DID IT GO OK
:>         JNZ   AUXP9020               NO, EXIT
:>
:>         WTO   'BACK FROM RECOVERY'
:>         DC    H'0'                   PSW in dump points to next instruction 
after this
:>
:>Here is the subroutine.
:>
:>RECOVERY CSTART ,               FYI, this does a BAKR/LARL/USING
:>         ST    R11,ESTAPARM+0          STORE CB IN PARM LIST
:>         ST    R10,ESTAPARM+4          STORE MODEL IN LIST
:>         ST    R12,ESTAPARM+8          STORE BASE REG IN PARM LIST
:>         ST    R13,ESTAPARM+12         STORE DATA REG IN PARM LIST
:>         XC    ESTAEV(24),ESTAEV       CLEAR ESTAE PARAMETER LIST
:>         LAY   R3,ESTAEXIT             GET ADDRESS OF ESTAE EXIT RTN
:>         LAY   R4,ESTAPARM             GET ADDRESS OF ESTAE PARMS
:>
:>         ESTAE (R3),CT,PURGE=HALT,ASYNCH=NO,TERM=YES,RECORD=YES,       +
:>               TOKEN=ESTAETKN,PARAM=(R4),CANCEL=NO,                    +
:>               MF=(E,ESTAEV)
:>
:>         LTR   R15,R15
:>         JZ    GOOD
:>         DC    H'5'                    0C1 IF NOT RC=0
:>GOOD     DS    0H
:>         ST    R15,RETURNCDE           SAVE IT FOR MESSAGE
:>         ST    R0,REASONCDE            SAVE IT FOR MESSAGE
:>
:>         PR    ,                       RETURN
:>
:>
:>Here is the start of the ESTAE
:>
:>ESTAEXIT DS    0H
:>         DROP  ,                       DROP ALL DSECTS
:>         BAKR  R14,0                   SAVE EVERYTHING
:>         CHI   R0,12                   IS SDWA PRESENT?
:>         JE    ESTAE100                NO, -->
:>
:>         L     R2,0(,R1)               LOAD PARAM LIST ADDR FROM SDWA
:>         LR    R4,R1                   SAVE POINTER TO SDWA
:>         USING SDWA,R4
:>
:>***********************************************************************
:>*  NO SDWA PRESENT, R2 POINTS TO PARM LIST                            *
:>***********************************************************************
:>ESTAE100 DS    0H                      ENTER HERE IF SDWA PRESENT
:>         LARL  R12,ESTAEXIT            LOAD PROGRAM BASE REGISTER
:>         USING ESTAEXIT,R12            <<< SET AS APPROPRIATE
:>         L     R13,12(,R2)             LOAD SAVEWORK AREA ADDRESS
:>         USING SAVEWORK,R13
:>
:>         L     R11,0(,R2)              LOAD LOCAL CB ADDR
:>         USING CB,R11
:>
:>         L     R9,4(,R2)               LOAD MODEL ADDRESS
:>         USING MODEL,R9
:>
:>         ESTAE 0,TOKEN=ESTAETKN        PREVENT RECURSION IN THE CODE
:>
:>         WTO   'SSDFAUXP ESTAE ENTERED',DESC=(7),ROUTCDE=(11)
:>
:>Output from the job.  Started with a /S procname rather than using ASCR.  
Both give the same result.
:>
:>15.09.56 STC76052  CALLING RECOVERY
:>15.09.56 STC76052  BACK FROM RECOVERY
:>15.09.58 STC76052  IEA995I SYMPTOM DUMP OUTPUT  130
:>   130             SYSTEM COMPLETION CODE=0C1  REASON CODE=00000001
:>   130              TIME=15.09.56  SEQ=00363  CPU=0000  ASID=00E6
:>   130              PSW AT TIME OF ERROR  078D0000   9AC00116  ILC 2  INTC 01
:>   130                ACTIVE LOAD MODULE           ADDRESS=1AC00000  
OFFSET=00000116
:>
:>
:>Chris Blaicher
:>Technical Architect
:>Mainframe Development
:>Syncsort Incorporated
:>50 Tice Boulevard, Woodcliff Lake, NJ 07677
:>P: 201-930-8234  |  M: 512-627-3803
:>E: [email protected]
:>
:>www.syncsort.com
:>
:>
:>
:>
:>
:>-----Original Message-----
:>From: IBM Mainframe Discussion List [mailto:[email protected]] On 
Behalf Of Charles Mills
:>Sent: Wednesday, August 31, 2016 2:45 PM
:>To: [email protected]
:>Subject: Re: ESTAE exit not being entered on abend
:>
:>Is there an [E]SPIE in the picture/ [E]SPIE gets control ahead of ESTAE, 
right, and can choose not to percolate? (From memory ...)
:>
:>Charles
:>
:>-----Original Message-----
:>From: IBM Mainframe Discussion List [mailto:[email protected]] On 
Behalf Of Blaicher, Christopher Y.
:>Sent: Wednesday, August 31, 2016 8:55 AM
:>To: [email protected]
:>Subject: ESTAE exit not being entered on abend
:>
:>I have a job that does an address space create.
:>The program in the new address space sets an ESTAE and I know it gave back a
:>RC=0 as I print the return code.
:>Note, the ESTAE exit does a WTO that it has been entered as the first thing.
:>Right after I set the ESTAE I force an 0C1.
:>I get the 0C1, but the ESATE exit is never entered.
:>Any hints?  Anybody seen this behavior before?
:>
:>----------------------------------------------------------------------
:>For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
[email protected] with the message: INFO IBM-MAIN
:>
:>________________________________
:>
:>
:>
:>ATTENTION: -----
:>
:>The information contained in this message (including any files transmitted 
with this message) may contain proprietary, trade secret or other confidential 
and/or legally privileged information. Any pricing information contained in 
this message or in any files transmitted with this message is always 
confidential and cannot be shared with any third parties without prior written 
approval from Syncsort. This message is intended to be read only by the 
individual or entity to whom it is addressed or by their designee. If the 
reader of this message is not the intended recipient, you are on notice that 
any use, disclosure, copying or distribution of this message, in any form, is 
strictly prohibited. If you have received this message in error, please 
immediately notify the sender and/or Syncsort and destroy all copies of this 
message in your possession, custody or control.
:>
:>----------------------------------------------------------------------
:>For IBM-MAIN subscribe / signoff / archive access instructions,
:>send email to [email protected] with the message: INFO IBM-MAIN

--
Binyamin Dissen <[email protected]>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

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

Reply via email to