Calling an OPENAPI task-related user exit
About this task
If a task-related user exit is enabled with the OPENAPI
option, CICS® uses the following
rules, based on the type of call, to determine the TCB on which it
should invoke the TRUE—on the QR TCB, on the caller's TCB, or
an L8 mode TCB:
- Application program call (API)—UERTAPPL
- For this call, CICS always invokes the TRUE on an L8 mode TCB
- CICS syncpoint manager call—UERTSYNC
- For this call, CICS always invokes the TRUE on an L8 mode TCB
- 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, the open API option is ignored for performance reasons. Tasks that run as Liberty threads invoke the TRUE on the T8 TCB that CICS provided to the Liberty ThreadPool. All other tasks invoke it on the QR TCB.
- UERTEOTR —End of task
- For this call, CICS always invokes the TRUE on an L8 mode TCB.
- EDF call—UERTFEDF
- For this call, CICS always invokes the TRUE on an L8 mode TCB
- CICS SPI call—UERTSPI
- For this call, CICS always
invokes the TRUE as a threadsafe TRUE on the TCB on which the task
is currently running at the time of the call.
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 the open API option is ignored and CICS always invokes the TRUE on the QR TCB.
Note: Even for call types that are invoked
on an L8 TCB, it is possible that the L8 TCB could suffer an aynschronous
abend and therefore not be available for subsequent use, with the
following result:
- If CICS is unable to switch to the L8 TCB for an API call to a TRUE, CICS abends the transaction.
- If CICS is unable to switch to the L8 TCB for a syncpoint or end of task call, CICS invokes the TRUE on the QR TCB instead.