PCUE_LOGICAL_LEVEL
Fullword containing the number of chained DFHRSADS
blocks (that is, logical level).
PCUE_BRANCH_ADDRESS
Fullword. Youcan 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 TACBincludes:
vThe program status word (PSW)
vThe registers at the time of the abend
vThe execution key at the time of the abend
vDetails of the subspace and access registers current at the time
of the abend.
Youcan map the TACB using the DFHTACB TYPE=DSECT macro.
Return codes
UERCNORM
Continue processing.
UERCPURG
Taskpurged 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.
Youcan 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.
Chapter1. Global user exit programs 191