Well, I got no replies to my first stab at this question. I've done some more testing. Let me try pruning the question down and see what happens.
I've got an assembler subroutine that does QSAM I/O. One of its features is a DCB ABEND exit, the purpose of which is to allow for graceful termination in the event of an I/O error. For ABEND S002-04 (reading an FB dataset as VB -- not an implausible user error), 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. What IS the recommended action in this case? What should the DCB ABEND exit do so that the program could wind things down gracefully? Returning from the ABEND exit to the address in R14 results in an ugly ending. Among other things, due to how other routines over which I have no immediate control do things, I end up with a (misleading) SC03 on an unrelated DCB that gets FREEMAINed without closing. Branching out of the DCB ABEND exit back into the mainline does not appear to be permissible -- DFSMS "Using Data Sets" says "Most exit routines described in this chapter must return to their caller. The only two exceptions are the end-of-data and error analysis [I guess they mean SYNAD] routines." Is anyone doing so successfully? Any other suggestions? Charles Mills ---------------------------------------------------------------------- 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

