IBM SC34-6814-04 User Manual

Page 213

Advertising
background image

PCUE_LOGICAL_LEVEL

Fullword containing the number of chained DFHRSADS
blocks (that is, logical level).

PCUE_BRANCH_ADDRESS

Fullword. You can use this field to supply a resume
address. Set the top bit to specify that the resumed task is
to run AMODE (31).

PCUE_BRANCH_EXECKEY

If storage protection is active, you can use this 1-byte field
to specify the execution key of the resumed task. The
possible values are:

PCUE_BRANCH_USER

User key

PCUE_BRANCH_CICS

CICS key.

If storage protection is active, and you do not specify a
value, the resumed task executes in User key.

If storage protection is not active, the resumed task
executes in CICS key.

UEPTACB

Address of the transaction abend control block (TACB) for the
abend. If the abend occurred because of a program check, the
information in the TACB includes:

v

The program status word (PSW)

v

The registers at the time of the abend

v

The execution key at the time of the abend

v

Details of the subspace and access registers current at the time
of the abend.

You can map the TACB using the DFHTACB TYPE=DSECT macro.

Return codes

UERCNORM

Continue processing.

UERCPURG

Task purged during XPI call.

UERCMEA

A resume address has been supplied.

XPI calls

All can be used.

The sample XPCTA global user exit program, DFH$PCTA

The sample program tests whether the abend was caused by the application
program trying to overwrite CICS-key storage in the CDSA or ECDSA, while running
in user key. If this was the case, the sample changes the execution key to CICS,
and retries the failing instruction.

You can use the sample program to identify, without abending, those programs that
need to be defined with EXECKEY(CICS), because they intentionally modify a
CICS-key DSA. For details of how to do this, see the prolog of DFH$PCTA.

Chapter 1. Global user exit programs

191

Advertising