vSend a message to the terminal operator if, for example, you believe that the abend is due to bad input data.

Information that is available to a program-level exit routine or program includes the following:

Command

Information provided

 

 

ADDRESS TWA

The address of the TWA

 

 

ASSIGN ABCODE

The current CICS abend code

 

 

ASSIGN ABPROGRAM

The name of the failing program for the latest abend

 

 

ASSIGN ASRAINTRPT

The instruction length code (ILC) and program interrupt

 

code (PIC) data for the latest ASRA or ASRB abend.

 

 

ASSIGN ASRAKEY

The execution key at the time of the last ASRA, ASRB,

 

AICA, or AEYD abend, if any

 

 

ASSIGN ASRAPSW

The PSW for the latest ASRA or ASRB abend

 

 

ASSIGN ASRAREGS

The general-purpose registers for the latest ASRA or ASRB

 

abend

 

 

ASSIGN ASRASPC

The type of space in control at the time of the last ASRA,

 

ASRB, AICA, or AEYD abend, if any

 

 

ASSIGN ASRASTG

The type of storage being addressed at the time of the last

 

ASRA or AEYD abend, if any

 

 

ASSIGN ORGABCODE

Original abend code in cases of repeated abends

 

 

If an abend occurs during the invocation of a CICS service, issuing a further request for the same service might cause unpredictable results because the reinitialization of pointers and work areas and the freeing of storage areas in the exit routine might not have been completed. In addition, ASPx abends, which are task abends while in syncpoint processing, cannot be handled by an application program.

For transactions that are to be dynamically backed out if an abend occurs, beware of writing exit code that ends with a RETURN command. This would indicate to CICS that the transaction had ended normally and would therefore prevent dynamic transaction backout and automatic transaction restart where applicable.

Exit programs can be coded in any supported language, but exit routines must be in the same language as the program of which they are a part.

See CICS Messages and Codes for the transaction abend codes for abnormal terminations that CICS initiates, their meanings, and the recommended actions.

Programming information relating to the coding of program-level exit code (such as addressability and use of registers) is in the CICS Application Programming Guide. For background information, see the CICS Application Programming Guide.

Processing the IOERR condition

Any program that attempts to process an IOERR condition for a recoverable resource must not issue a RETURN or SYNCPOINT command, but must terminate by issuing an ABEND command. A RETURN or SYNCPOINT command causes the recovery manager to complete the unit of work and commit changes to recoverable resources.

152CICS TS for z/OS 4.1: Recovery and Restart Guide

Page 164
Image 164
IBM SC34-7012-01 manual Processing the Ioerr condition, Command Information provided