Calling a task-related user exit that runs on an open TCB

If a task-related user exit (TRUE) is enabled with options that indicate it always runs on an open TCB, CICS® uses the following rules, based on the type of call, to determine the TCB on which it should invoke the TRUE.

Application program call (API)—UERTAPPL
For this call, if TRUEs are enabled to always run on an L8, they are called on an L8 TCB. If TRUEs are enabled to run on any key 8 TCB, they are invoked on an L8, T8, or X8.
CICS syncpoint manager call—UERTSYNC
For this call, if TRUEs are enabled to always run on an L8, they are called on an L8 TCB. If TRUEs are enabled to run on any key 8 TCB, they are invoked on an L8, T8, or X8.
CICS task manager call—UERTTASK
For this call, the TCB on which CICS invokes the TRUE is further determined by the type of task manager call:
UERTSOTR—Start of task
For this call, tasks that run as Liberty threads invoke the TRUE on the T8 TCB that CICS provided to the Liberty ThreadPool. In all other environments, for performance reasons, an open TCB is not used and the TRUE is always invoked on the QR TCB.
UERTEOTR —End of task
For this call, if TRUEs are enabled to always run on an L8, they are called on an L8 TCB. If TRUEs are enabled to run on any key 8 TCB, they are invoked on an L8, T8, or X8.
EDF call—UERTFEDF
For this call, if TRUEs are enabled to always run on an L8, they are called on an L8 TCB. If TRUEs are enabled to run on any key 8 TCB, they are invoked on an L8, T8, or X8.
CICS SPI call—UERTSPI
For this call, for performance reasons, CICS always invokes the TRUE as a threadsafe TRUE and hence calls the TRUE on the TCB on which the task is currently running.

The SPI function, which is to satisfy EXEC CICS INQUIRE EXITPROGRAM commands on which the CONNECTST or QUALIFIER option are specified, is simple and does not require invocation on a specific TCB.

CICS termination call—UERTCTER
For this call, open TCBs are not used and CICS always calls the TRUE on the QR TCB.
Note: Even for call types that are invoked on an open TCB, it is possible that the open TCB could suffer an asynchronous abend and therefore not be available for subsequent use, with the following result:
  • If CICS is unable to switch to the open TCB for an API call to a TRUE, CICS abends the transaction.
  • If CICS is unable to switch to the open TCB for a syncpoint or end of task call, CICS invokes the TRUE on the QR TCB instead.

The TCB mode on which the TRUE is being called is provided in the second and third bytes of a three-byte-field address parameter identified by the UEPTIND symbolic name. See User exit parameter lists for details.