Joe

There is a very good “Providing Recovery” section of the Advanced Assembler 
Services guide that will help.

It includes the following sentence :

“Programs that are disabled, hold locks, or are in SRB mode cannot use 
ESTAE-type recovery routines.”

Rob Scott
Rocket Software

From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
Seymour J Metz
Sent: Friday, March 1, 2024 12:44 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Recovery routine for IRB

EXTERNAL EMAIL



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<http://mason.gmu.edu/~smetz3>
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר

________________________________________
From: IBM Mainframe Discussion List 
<IBM-MAIN@LISTSERV.UA.EDU<mailto:IBM-MAIN@LISTSERV.UA.EDU>> on behalf of Joseph 
Reichman 
<000005812645a43c-dmarc-requ...@listserv.ua.edu<mailto:000005812645a43c-dmarc-requ...@listserv.ua.edu>>
Sent: Thursday, February 29, 2024 11:13 PM
To: IBM-MAIN@LISTSERV.UA.EDU<mailto:IBM-MAIN@LISTSERV.UA.EDU>
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 lists...@listserv.ua.edu<mailto:lists...@listserv.ua.edu> with 
the message: INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu<mailto:lists...@listserv.ua.edu> with 
the message: INFO IBM-MAIN

================================
Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ 
Main Office Toll Free Number: +1 855.577.4323
Contact Customer Support: 
https://my.rocketsoftware.com/RocketCommunity/RCEmailSupport
Unsubscribe from Marketing Messages/Manage Your Subscription Preferences - 
http://www.rocketsoftware.com/manage-your-email-preferences
Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy
================================

This communication and any attachments may contain confidential information of 
Rocket Software, Inc. All unauthorized use, disclosure or distribution is 
prohibited. If you are not the intended recipient, please notify Rocket 
Software immediately and destroy all copies of this communication. Thank you.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to