Canceling interval control requests
To cancel a previously-issued START, DELAY, or POST interval control request, you use the CANCEL command.
About this task
The REQID option specifies the identifier of the request to be canceled. If the request is due to execute on a remote region, you can use the SYSID option to specify that the CANCEL command is to be shipped to that region.
START and DELAY requests can
be canceled only before any interval specified on the request has expired.
If a START request is dynamically routed, it is kept in the local region until
the interval expires, and can therefore be canceled by a locally-issued CANCEL
command on which the SYSID option is unnecessary. However, in a distributed
routing environment (in which each region can be both a requesting region
and a target region), there may be times when you have no way of knowing to
which region to direct a CANCEL command. For example, you might want to cancel
a DELAY request which could have been issued on any one of a set of possible
regions. To resolve a situation like this:
- Issue a CANCEL command on which the REQID option specifies the identifier of the request to be canceled, and the SYSID option is not specified. The command executes locally.
- Use an XICEREQ global user exit program based on the CICS-supplied sample
program, DFH$ICCN. Your exit program is invoked before the CANCEL command
is executed. DFH$ICCN:
- Checks:
- That it has been invoked for a CANCEL command.
- That the SYSID option was not specified on the command.
- That the identifier of the request to be canceled does not begin with 'DF'. ('DF' indicates a request issued internally by CICS.)
- That the name of the transaction that issued the CANCEL command does not begin with 'C'—that is, that the transaction is not a CICS internal transaction, nor a CICS-supplied transaction such as CECI.
If one or more of these conditions are not met—for example, if it was invoked for a RETRIEVE command—DFH$ICCN does nothing and returns.
- Instructs CICSPlex® SM to:
- Search every CICS region that it knows about for an interval control request with the identifier (REQID) specified on the CANCEL command.
- On each region, cancel the first request (with the specified identifier)
that it finds. Note that:
- Requests may be canceled on more than one region.
- If a particular region contains more than one request with the specified identifier, only the first request found by CICSPlex SM is canceled.
- You must ensure that CICSPlex SM has UPDATE access to the transaction ID of the transaction associated with the CANCEL request.
Note: For full details of DFH$ICCN's processing, see the comments in the sample program. - Checks:
For details of the CANCEL command, see CANCEL. For general information about how to write an XICEREQ global user exit program, see Interval control EXEC interface program exits (XICEREQ, XICERES, and XICEREQC).