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

Reply via email to