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