SYNAD exits are triggered by I/O errors. While the B37 was caused by an I/O REQUEST, no actual output OPERATION was attempted because the out of extents condition was detected before one could be initiated.
> -----Original Message----- > From: IBM Mainframe Assembler List [mailto:ASSEMBLER- > [email protected]] On Behalf Of Christopher J Pomasl > Sent: Thursday, September 22, 2011 2:32 PM > To: [email protected] > Subject: Re: SYNAD routine > > 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. > > ******* > >
