I've got an assembler program that I believe was once working correctly but
to which I recently made fairly extensive alterations. I recently had a test
in which I ended up with a full program ABEND rather than my SYNAD or ABEND
recovery happening, and I'm trying to get my arms around what happened and
what should have happened, the latter being documented in a somewhat
fragmentary fashion, IMHO.

 

The error, FWIW, is

 

IOS000I 0339,5A,CMD,47,0E00,,01C9000C,SYSP01,XXX001EI,                     

 8000000000C91C04042084000000000000000000FF010F0000004EA00001C90C          

 FAILING PARAMETER LIST DATA = 8680000401C9000C01C9000C00000000            

IEC020I 001-3,XXX001EI,XXXXXXXX,SYS00027,0339,SYSP01,                      

IEC020I XXXTEST.XXXFILES.XXXTESTU.BB8XJJ46.SYSXXX                          

IEC020I NON-ACCEPTABLE ERROR  

 

In non-technical terms, the problem was that due to an unrelated logic
error, the program tried to read a new and un-written dataset and found
strange garbage on the first track. I can (and did) of course fix that
problem, but I want to make sure the SYNAD and DCB ABEND logic are in fact
working correctly. 

 

The SYNAD routine sets a flag that the mainline processes by displaying
messages and terminating in an orderly fashion. That did not happen as
intended. None of my messages came out apparently because the program
ABENDed before the mainline logic regained control, so I'm trying to figure
out what might have happened internally.


 

1. The (QSAM input) DCB specifies EROPT=ACC. In this case apparently the
error was not eligible for ACC. Is that how you would interpret the above
messages? In other words, I don't have to consider that I somehow fouled up
the code and the SYNAD exit is not being honored?

 

2. Is there documentation anywhere of which errors are eligible for ACC and
which are not?

 

3. There is a DCB ABEND exit specified in the DCB exit list. Should not the
DCB ABEND exit have been called? The DCB ABEND exit also sets a flag for the
mainline code and then always returns Ignore (x'04'). Does anyone see
evidence in the above that the DCB ABEND exit was or was not driven? (There
is no ESTAE type exit.)

 

4. Is there any documentation anywhere of which errors are not eligible for
ABEND exit Ignore?

 

5. What do developers do in this situation? Okay, DFSMS is unwilling to
ignore the error - I understand that. Nonetheless, I would like the
opportunity to do an orderly termination. What should a DCB ABEND exit do
for a non-Ignorable condition so that the error will be ignored long enough
for the program to do an orderly termination?

 

Thanks,

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

Reply via email to