Does ESTAE support code that holds a lock? I suspect tthat you need an ARR or 
FRR?

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר

________________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of 
Joseph Reichman <[email protected]>
Sent: Thursday, February 29, 2024 11:13 PM
To: [email protected]
Subject: Recovery routine  for IRB

HI

I have tested my recovery routines in many different scenarios. My last step
was to test a asynchronous exit or an IRB. Since many people have told I
don't post my code I'll do so now.

I have tested the asynchronous exit or IRB and it has gotten control however
when I insert H'0' it abends with without the recovery getting control

I take the current TCB or PSATOLD (the same one that was active when I
established the estate and save it in IQETCB so since the IRB runs under the
same TCB that established the estate it (the recovery program) should get
control

The local lock is held however I don't think the should stop the estate from
getting control

*+--------------------------------------------------------------------+
          MODULE CESTAE,BASE=12,LOC=BELOW,AMODE=31,RMODE=ANY,           X
                TEXT=' ESTABLISH AN ESTAEX ROUTINE'
 *        *---------------------------------------*
 *        *     LOAD THE ESTAE ROUTINE            *
 *        *---------------------------------------*
          MODESET KEY=ZERO,MODE=SUP


          LOAD  EP=GRECOV,ERRET=EXIT0C LOAD THE ESTAEX ROUTINE
          LR    R3,R0                 ADDRESS OF ESTAEX ROUTINE TO R3
 *        *---------------------------------------*
 *        *     BUILD PARMLIST FOR ESTAEX ROUTINE *
 *        *---------------------------------------*
          LAE   R4,ESTPARAM           ADDRESS OF PARMS FOR ESTAE RTN
          USING ESTPARM,R4            MAP ESTAE PARMLIST
          LAE   R15,RETRY             RETRY ADDRESS
         ST    R15,ESTRETRY          SAVE IN PARMS FOR ESTAE ROUTINE
*        *---------------------------------------*
*        *     UNCOMMENT THE FOLLOWING 2 LINES   *
*        *     IF THIS MODULE EXECUTES IN        *
*        *     SUPERVISOR STATE.                 *
*        *---------------------------------------*
         ST    R12,ESTLOAD             ENTRY POINT TO ESTAE PARMLIST
         MVC   ESTMOD(8),=CL8'CESTAE'  MODULE NAME TO ESTAE PARMLIST
*        *---------------------------------------*
*        *     ISSUE THE ESTAEX MACRO            *
*        *---------------------------------------*
         ESTAEX (R3),PARAM=(R4),MF=(E,ESTAELST)
*        *---------------------------------------*
*        *     THE FOLLOWING 4 INSTRUCTIONS      *
*        *     REPRESENTS THE REST OF THE        *
*        *     PROCESSING IN THIS MODULE.        *
*        *     AN ERROR WILL CAUSE RTM TO INVOKE *
*        *     AN ERROR WILL CAUSE RTM TO INVOKE *
*        *     THE ESTAEX ROUTINE.               *
*        *---------------------------------------*
*        DC    H'0'
          B     IRBERR
         ENDMOD                        RESTORE REGISTERS AND RETURN
IRBERR   DS    0H
         LOAD  EP=IRBPTR
         LR    R5,R0
*        O     R5,=X'80000000'
         ST    R5,IRBADD

*
         USING PSA,0
         L     R4,PSATOLD


*
*
*
         SETLOCK OBTAIN,TYPE=LOCAL,MODE=UNCOND,REGS=STDSAVE
*
         CIRB EP=(R5),                                                 X
               RETIQE=YES,                                             X
               STAB=DYN,                                               X
               MODE=SUPR,                                              X
               KEY=SUPR,                                               X
               WKAREA=255,                                             X
               BRANCH=YES,                                             X
               AMODE=DEFINED


*

          USING RBBASIC,R1
          L     R5,RBNEXAV                Get IQE Pointer
          USING IQESECT,R5
          ST    R5,IQEADD
          ST    R1,IQEIRB
          LA    R15,PLIST
          ST    R15,IQEPARAM
          ST    R4,IQETCB
 *
 *
 *
          SCHEDIRB IQEPTR=IQEADD,                                       X
                MF=(E,IRBLST)
 *
          SETLOCK RELEASE,TYPE=LOCAL,REGS=STDSAVE
          B       EXIT

*          Here is my IRB rtn as you can see I inserted a H'0' upfront
*           When I take the H'0' out the IRB routine gets control and runs
till the end
*
IRBPTR   CSECT
IRBPTR   AMODE 31
IRBPTR   RMODE ANY
         YREGS
*
*        STM   R14,R12,12(R13)
         LR    R5,R15
         LR    R11,R14
         DC    H'0'



Thanks


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


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

Reply via email to