Bruce, thanks.

My reading of the manual is that "Figure 164. Conditions for Which Recovery
Can Be Attempted" (is that what you are referring to? Apologies if I
misunderstood) is not an exhaustive list of DCB ABEND conditions, but rather
a list of ABENDs for which "recovery" (attempting to bypass the error and
permit an OPEN or CLOSE to continue to a useful conclusion) may be
attempted.

In any event, in my program, it's clearly happening for an S002-04, which is
a GET error, not an OPEN or CLOSE error.

I also have a SYNAD exit in the program. Both exits work correctly for their
respective conditions, generally. For ABEND S002-04 the "option byte" at the
address in R1 + 3 is x'80' -- in other words, there are NO acceptable
options: not okay to recover, not okay to ignore, not okay to delay. My
question is "well then, what SHOULD I do in this situation to provide for a
graceful termination, including the closing of other unrelated DCBs?"

I'm not a QSAM newbie. I've been writing assembler QSAM I/O since 1969, and
DCB exits since (guessing) 1985. My question is not "gee, how about this DCB
ABEND thing?" but rather the specific question above.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf
Of Bruce Black
Sent: Friday, December 08, 2006 12:41 PM
To: [email protected]
Subject: Re: How recover from unrecoverable DCB ABEND?

>
> 1. Au contraire, I don't think it says that.
>   
It seems pretty clear to me:

The DCB ABEND exit is provided to give you some options regarding the     
action you want the system to take when a condition occurs that may result
in abnormal termination of your task. This exit can be taken any time an  
abend condition occurs during the process of opening, closing, or handling
an end-of-volume condition for a DCB associated with your task. The exit  
is taken only for determinate errors that the system can associate with   
the DCB.                                                                  
> 2. In any event, DFSMS is calling it when it is calling it, and that's
> during a GET.
>   
I don't think so
> I'm getting the ABEND exit invoked for an S002-04 condition, which is
> clearly a read-type situation.
All the ABENDs listed in the doc are for OPEN x13, CLOSE x14, or EOV 
x37.  I don't think that a s002 would invoke it.

Have you considered a SYNAD exit if you goal is to shutdown gracefully 
after an I/O error?  It ONLY includes errors reading or writiing data 
blocks, not O/C/E errors like the ABEND exit.   Actually you might need 
both to recover from label errors as well as data errors.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to