However, as no recovery services are provided for abending global user exits,
CICS ensures that any outstanding XPI enqueues are dequeued automatically
when the dispatcher task terminates. Note that if the dispatcher task is running
a CICS transaction, the dispatcher task terminates when the CICS transaction
terminates (whether normally or abnormally).
Normally enqueues are owned by the requesting transaction, which contains
units of work (UOWs), and these are used to anchor the enqueue control
blocks. The XPI, however, does not require a transaction environment, and
global user exits may be invoked under dispatcher tasks which have no
transactions or UOWs.
PURGEABLE(YES|NO)
specifies whether a purge (or timeout) request against the task is to be honored
if the requesting dispatcher task has to wait for the enqueue.
WAIT(YES|NO)
specifies whether the dispatcher task is to wait if the resource is currently
enqueued to another dispatcher task.
RESPONSE and REASON values for ENQUEUE
RESPONSE REASON
OK None
EXCEPTION ENQUEUE_BUSY
ENQUEUE_LOCKED
ENQUEUE_DISABLED
LIMIT_EXCEEDED
SYSENQ_FAILURE
PURGED TASK_CANCELLED
TIMED_OUT
The DEQUEUE function
The DEQUEUE function is provided on the DFHNQEDX macro call. It releases a
resource previously enqueued by an ENQUEUE function call.
DEQUEUE
DFHNQEDX [CALL,]
[CLEAR,
[IN,
FUNCTION(DEQUEUE),
{ENQUEUE_TOKEN,|
ENQUEUE_NAME1(address,length)[ENQUEUE_NAME2(address,length)],}
[OUT,
RESPONSE (name1 | *),
REASON(name1 | *)]
The ENQUEUE_TOKEN, ENQUEUE_NAME1, and ENQUEUE_NAME2 parameters
are the same as in the ENQUEUE function call.
RESPONSE and REASON values for DEQUEUE
RESPONSE REASON
OK None
EXCEPTION ENQUEUE_NOT_OWNED
ENQUEUE_LOCKED
enqueue domain functions
Chapter 3. The user exit programming interface (XPI) 319
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
||
||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
||
||
|