Thanks, I read those excerpts in that manual and attributed the ABEND exit to OPEN and CLOSE issues. I'm wondering why a B37 is not an I/O error since the record could not be written. Seems the very definition of I/O error.
Looking at the messages guide though, the System Action for IEC030I specifically says that the ABEND exit is called if available else the task is abended. Pay dirt!! Chris On 09/22/2011 02:50 PM, Chip Grantham wrote:
Synad appears to be for physical error only. Found this in the manual: Analyzing I/O Errors The basic and queued access methods both provide special macros for analyzing I/O errors. These macros can be used in SYNAD routines or in error analysis routines. If your program does not have a SYNAD routine, the access method issues ABEND 001. You might be looking for the DCB abend routine exit: DCB ABEND Exit 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. However, it is not taken if an EOV abend condition occurs during the CLOSE issued by task termination. The exit is taken only for determinate errors that the system can associate with the DCB. When an abend condition occurs, a write-to-programmer message about the abend is issued and your DCB abend exit is given control, provided there is an active DCB abend exit routine address in the exit list contained in the DCB being processed. If STOW called the end-of-volume routines to get secondary space to write an end-of-file mark for a PDS, or if the DCB being processed is for an indexed sequential data set, the DCB abend exit routine is not given control if an abend condition occurs. When your exit routine is entered the contents of the registers are the same as for other DCB exit list routines, except that the 3 low-order bytes of register 1 contain the address of the parameter list described in Figure 115. > From z/OS Using Datasets dgt2d480.pdf. Chip Grantham | Ameritas | Sr. IT Consultant | [email protected] 5900 O Street, Lincoln NE 68510 | p: 402-467-7382 | c: 402-429-3579 | f: 402-325-4030 Christopher J Pomasl<[email protected]> Sent by: IBM Mainframe Assembler List<[email protected]> 09/22/2011 03:34 PM Please respond to IBM Mainframe Assembler List<[email protected]> To [email protected] cc Subject SYNAD routine The DCB is QSAM and a SYNAD is defined. The PUT, eventually, gets a B37 but the SYNAD is never triggered. Should it be for a B37 or do I need to use a different exit? Chris ******* This message may contain confidential information intended only for the use of the addressee(s) named above and may contain information that is legally privileged. If you are not the addressee, or the person responsible for delivering it to the addressee, you are hereby notified that reading, disseminating, distributing or copying this message is strictly prohibited. If you have received this message by mistake, please immediately notify us by replying to the message and delete the original message immediately thereafter. Thank you. *******
