This may sound heretical, but I lean against recovery actions for system exits. In most cases, the environment in which a system-defined exit runs is protected already. Messages are issued, dumps are taken, and some semblance of order is restored. In many cases the exit is disabled so that repetitive abends are avoided. What actions would a user recovery environment take better than this? Test your exit for as long as possible on a sandbox system. Then move it to a development system for as long as possible. At long last move it to production. A user written recovery routine would probably take longer to debug than whatever exit code caused a failure in the first place.
. . . J.O.Skip Robinson Southern California Edison Company Electric Dragon Team Paddler SHARE MVS Program Co-Manager 626-302-7535 Office 323-715-0595 Mobile jo.skip.robin...@sce.com -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Walt Farrell Sent: Friday, September 18, 2015 6:12 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Recovery routine for ICHRTX00 On Fri, 18 Sep 2015 18:01:16 +0000, Leonardo Vaz <leonardo....@cn.ca> wrote: >I want to make use of the MVS router exit ICHRTX00 but I am having trouble >defining a recovery routine for it. I can't use ESTAE-like routines because >locks can be held when the exit is called and I can't use FRR because it needs >Supervisor state and PSW key 0 while the exit might be called in any state and >key. > >This will be my first real recovery routine so I'm pretty sure I'm missing >something basic, does anyone has any ideas? If you want recovery in that exit you basically need to determine the environment you were invoked in and do something appropriate. As you've noticed, "appropriate" will vary depending on the request type and other options, and will depend in some cases on how the caller has decided to invoke you. Some are simpler than others. REQUEST=VERIFY, for example, is documented as requiring an environment where an SVC can be issued, and does not require any particular state or key. So for that you could use an ESTAE(X). Each request type has a documented programming environment. So you start out by figuring out what you want to do in the routine (which request type(s) you want to process), and what environments they can be called in. If you only want one particular request type, I would filter other requests out before establishing your recovery as that will make things much simpler. By the way, starting your recovery adventure with ICHRTX00 may not be your best choice. You should probably learn about recovery using (a) some simpler routine that (b) won't kill your system if you get it wrong. -- Walt ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN