Interval control EXEC interface program exits (XICEREQ, XICERES, and XICEREQC)
These exits are invoked when interactions with interval control programs occur.
- XICEREQ
- XICEREQ is invoked on entry to the interval control program before CICS® processes an interval control
request. Using XICEREQ, you can:
- Analyze the request to determine its type, the keywords specified, and their values.
- Modify any value specified by the request before the command is executed.
- Set return codes to specify that either:
- CICS should continue with the request, modified or unmodified.
- CICS should bypass the request. (Note that if you set this return code, you must also set up return codes for the EXEC interface block (EIB), as if you had processed the request yourself.)
Note: The XICEREQ exit is invoked by internal requests made by CICS code, as well as by requests made by applications. - XICERES
- XICERES is invoked by the interval control program, before CICS processes a non-terminal-related
EXEC CICS START request that has been dynamically routed to this region. Note that XICERES is invoked:
- After exit XICEREQ and before XICEREQC (if these exits are enabled). This means that:
- If an XICEREQ exit program chooses to bypass the request, XICERES is not invoked, even if it is enabled.
- If an XICEREQ exit program modifies the request, XICERES must deal with the modified request.
- On the target region—that is, the region to which the START request has been routed.
- Only if the routing region—the region on which the routing program runs—supports the “resource unavailable” condition (RESUNAVAIL). To support the “resource unavailable” condition, the routing region must be a supported release of CICS TS.
- Only if it is enabled. It is strongly recommended that you enable this exit only in application-owning regions to which non-terminal-related EXEC CICS START requests may be dynamically routed.
- By internal requests made by CICS code, as well as by requests made by applications.
The XICERES exit is not invoked:- For statically-routed requests.
- For terminal-related EXEC CICS START requests. (These always execute in the terminal-owning region and cannot be routed.)
- For dynamically-routed transactions - only dynamically-routed (non-terminal-related) START requests cause the exit to be invoked. Thus, a dynamically-routed transaction that was initiated by a terminal-related EXEC CICS START command does not cause the exit to be invoked.
- If it is disabled.
- If an XICEREQ exit program chooses to bypass the request.
You can use XICERES to check that all resources required by the transaction to be started are available on the target region. If, for example, the transaction is disabled, or a required file is missing, your exit program can give the distributed routing program the opportunity to route the request to a different region. To do this, set a return code of UERCRESU. This causes CICS to:- Set the DYRERROR field of the distributed routing program's communications area to 'F'—resource unavailable.
- Reinvoke the routing program, on the routing region, for route selection failure.
- Return a RESUNAVAIL condition on the EXEC CICS START command executed by the mirror on the target region. (This condition is not returned to the application program.)
CICS ignores any changes made by the exit program to the values of any of the exit parameters. Your exit program can set a return code, but not change any parameters.
For guidance information about dynamically routing non-terminal-related EXEC CICS START requests, see Non-terminal-related START commands. For information about writing a distributed routing program to route non-terminal-related EXEC CICS START requests, see Routing non-terminal-related START requests.
- After exit XICEREQ and before XICEREQC (if these exits are enabled). This means that:
- XICEREQC
- XICEREQC is invoked after an interval control program request has completed. Using XICEREQC, you
can:
- Analyze the request, to determine its type, the keywords specified, and their values.
- Set return codes for the EIB. When examining return codes, refer to the EIBRCODE value.
Note: The XICEREQC exit is invoked by internal requests made by CICS code, as well as by requests made by applications.