System failures, Handling abends and program level abend exits, Handling abends and program level abend exits 151 – IBM SC34-7012-01 User Manual

Page 163

Advertising
background image

Remember that:

v

For transactions that access a recoverable resource, DTB helps to preserve logical
data integrity.

v

Resources that are to be updated should be made recoverable.

v

DTB takes place only after program level abend exits (if any) have attempted
cleanup or logical recovery.

Transaction restart after DTB

For each transaction where DTB is specified, consider also specifying automatic
transaction restart. For example, for transactions that access DL/I databases (and
are subject to program isolation deadlock), automatic transaction restart is usually
specified.

Even if transaction restart is specified, a task will restart automatically only under
certain default conditions (listed under “Abnormal termination of a task” on page
93).
These conditions can be changed, if absolutely necessary, by modifying the
restart program DFHREST.

Use of the program error program (DFHPEP)

Decide whether or not to include your own functions, examples of which are given
in “The CICS-supplied PEP” on page 163. (DFHPEP is invoked during abnormal
task termination as described at “Abnormal termination of a task” on page 93.)

System failures

Specify how an application is to be restarted after an emergency restart.

Depending on how far you want to automate the restart process, application and
system programming could provide the following functions:

v

User exits for transaction backout processing to handle:
– Logically deleting records added to BDAM or VSAM-ESDS files (see the CICS

Customization Guide for details of the XFCLDEL global user exit point)

– Backing out file control log records (see the CICS Customization Guide for

details of the XFCBOUT global user exit point)

– File errors during transaction backout (see the CICS Customization Guide for

details of the XFCBFAIL global user exit point)

– User recovery records read from the system log during emergency restart (see

the CICS Customization Guide for details of the XRCINPT global user exit
point).

v

A progress transaction to help the user discover what updates have and have
not been performed. For this purpose, application code can be written to search
existing files or databases for the latest record or segment of a particular type.

Handling abends and program level abend exits

You can write program-level abend exit code to perform different actions,
depending on the abend that occurs.

For example, you might want to perform any of the following actions, although
you are recommended to keep abend exit code to a minimum:

v

Record application-dependent information relating to that task in case it
terminates abnormally.

Chapter 13. Programming for recovery

151

Advertising