Exit xpcta – IBM SC34-6814-04 User Manual

Page 212

Advertising
background image

XPI calls

All can be used.

Exit XPCTA

XPCTA is invoked immediately after a transaction abend, and before any
processing that might modify the existing environment so that the task could not be
resumed. You can use it to:

v

Set a resume address, instead of letting CICS process the abend

v

Specify the subspace that control is passed in.

If a resume address is passed back, registers 0 through 13 and 15 are restored to
their values at the time of the abend. Register 14 is used to branch to the resume
address. If the exit sets a return code of zero, or a resume address of zero, CICS
processes the abend.

Note: If the transaction abend occurs as a result of a program check or an

operating system abend:

1. It is possible that the XDUREQ dump domain exit may be invoked before

XPCTA. (For details of XDUREQ, see page “Exit XDUREQ” on page 53.)

2. If a resume address is passed back, registers 0 through 15 are restored

to their value at the time of the abend. The PSW is used to branch to the
resume address.

A resume address, normally obtained from the return code UERCMEA from XPCTA,
is ignored for C and C++ programs compiled with the XPLINK option.

When invoked

After an abend and before the environment is modified.

Exit-specific parameters

UEPPCDS

Address of a storage area that contains program- and
terminal-related information, and that can be mapped using the
DSECT DFHPCUE. When XPCTA is invoked, the following
DFHPCUE fields are significant:

PCUE_CONTROL_BITS

1-byte flag field. A setting of PCUECBTE indicates that the
transaction is linked to a terminal.

A flag, PCUE_NO_RESUME, in PCUE_CONTROL_BITS
indicates that a resume address is not supported. When
set, any return code of UERCMEA from XPCTA is ignored.
This flag is set by CICS before invoking XPCTA for C and
C++ programs compiled with the XPLINK option.

PCUE_TASK_NUMBER

3-character packed decimal field containing the task
number.

PCUE_TRANSACTION_ID

4-character field containing the transaction ID.

PCUE_TERMINAL_ID

4-character field containing the terminal ID (if any).

PCUE_PROGRAM_NAME

8-character field containing the name of the failing program.

190

Customization Guide

Advertising