Processing the ioerr condition, Start transid commands, Pl/i programs and error handling – IBM SC34-7012-01 User Manual

Page 165

Advertising
background image

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.

START TRANSID commands

In a transaction that uses the START TRANSID command to start other transactions,
you must maintain logical data integrity.

You can maintain data integrity by following these guidelines:
1.

Always use the PROTECT option of the START TRANSID command. This
ensures that if the START-issuing task is backed out, the new task will not start.

2.

If you pass data to the started transaction (on one of the data options FROM,
RTERMID, RTRANSID, or QUEUE), ensure you define the associated
temporary storage queue as recoverable. The temporary storage queue is
named on the REQID option of the START command when using any of the
data options. To make the temporary storage queue recoverable, define the
queue in a temporary storage table using the DATAID option of the DFHTST
TYPE=RECOVERY macro (see “Recovery for temporary storage” on page 135).
This ensures that data being passed to another task is deleted from the
temporary storage queue if the START-issuing task fails and is backed out.

v

If REQID is not used, the default DATAID is ‘DFRxxx’.

v

If REQID is used, that REQID is the DATAID designated as recoverable in
the TST.

Use a recoverable DATAID to ensures that, if a system failure occurs after the
START-issuing task has completed its syncpoint, the START command is preserved.
CICS starts the transaction specified on a recoverable START command after an
emergency restart, when the expiry time is reached and provided the terminal
specified the TERMID option is available. A DATAID is relevant only if data is
being passed to the started transaction.

Note:

Consider using EXEC CICS RETURN TRANSID(...) with the IMMEDIATE

option if the purpose is to start the next transaction in a sequence on the same
terminal. This does not unlock the terminal, incurs less overhead, and, in a
dynamic transaction routing (DTR) environment, the transaction is eligible for
DTR.

PL/I programs and error handling

ON-units are a standard method of error-handling in PL/I programs. If the
execution-time option STAE is specified, CICS program control services set up an
exit routine that activates the PL/I ON-units.

This exit routine can handle:

v

All PL/I errors

v

CICS abends that occur in the PL/I program and in associated CICS services

v

Program checks

Note that, under CICS, PL/I execution-time options can be specified only by the
PLIXOPT character string.

Chapter 13. Programming for recovery

153

Advertising