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

