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

Reply via email to