And I think you may be right. Further investigation reveals that BOTH the SYNAD and the ABEND exits are being driven, in that order. They share some common code, so that fact was a little obscured in the dump.
Seeing as how the SYNAD exit can legally just branch somewhere in the main line (and the ABEND exit apparently cannot), I think the answer is to have the SYNAD do that rather than returning to its caller (QSAM). I come from the school of thought that says subroutines ought to return to their callers, not branch somewhere else, so I have resisted that approach. The SYNAD routine will have to do this under all circumstances, because I don't know how it will recognize the case "if I return to QSAM it will trigger a DCB ABEND that will be unrecoverable." It's going to take some work, making sure we branch to the right place for the circumstances that triggered it and getting the registers and save areas sorted out, buy hey! that's what assembler programming is all about, right? Recovering with an ESTAE would be difficult because this is just a minor subroutine that is part of a product written primarily in higher-level language. It seems a shame to set up and tear down an ESTAE in some cases around individual GETs. Charles -----Original Message----- From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf Of Bruce Black Sent: Friday, December 08, 2006 3:53 PM To: [email protected] Subject: Re: How recover from unrecoverable DCB ABEND? I think that SYNAD will meet your need ---------------------------------------------------------------------- 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

