Functional overview
- ENABLE
- This is a global operation that names the task-related user exit
and causes the task-related user exit to be loaded into storage, if
it has not already been loaded. It also causes the exit program control
block (EPB), which represents the task-related user exit, and the
exit’s global storage to be set up by the user exit manager module,
DFHUEM. The EPB also holds a TALENGTH argument and a bit-string profile
for use in an exit operation. The ENABLE operation does not pass
control to the task-related user exit. DFHUEM is used to enable both
global user exits and task-related user exits. The ENABLE operation is performed in two stages:
- ENABLE
- START.
An exit is not made available for execution until it has been both enabled and started.
You can use the TASKSTART keyword on the ENABLE command to enable a task-related user exit so that it is invoked at task start for all tasks in the CICS® system.
You can also enable a task-related user exit with the FORMATEDF keyword, which means that the task-related user exit can provide formatted screens for EDF to display, whenever a DFHRMCAL request to the task-related user exit takes place.
The task-related user exit is invoked in the addressing mode of its original caller unless the LINKEDITMODE keyword is specified on the ENABLE command, in which case the exit is invoked in its own link-edit AMODE. LINKEDITMODE is only valid on the first ENABLE command for an exit program.
- EXTRACT
- Information concerning an “enabled and started” task-related user exit is returned to an application when it issues this command.
- DISABLE
- This is a global operation which in general terms is the reverse
of an ENABLE request. The DISABLE operation can be performed in two
stages:
- STOP: This is the reverse of the START keyword on the ENABLE request. It causes the task-related user exit to remain in main storage together with all its associated control blocks; however it is not available for execution until an ENABLE command with the START option is specified.
- EXITALL: This causes the EXIT and its control blocks to be deleted from main storage. The EPB however is added to a chain of re-usable EPB's anchored in the UETH. This function should not be used until all tasks that have used the exit have ended; the results of EXITALL before that point are unpredictable.
- DFHRMCAL
- After an exit has been enabled and started, it can be invoked
from an application using a DFHRMCAL request directly, or by passing
control to a stub which performs the DFHRMCAL request. A register
1 parameter list may be supplied to the task-related user exit from
the application.
The task interface element (TIE) control block is created for the task and task-related user exit combination when the task issues its first DFHRMCAL request, unless the TIE has already been created because the task-related user exit was enabled for TASKSTART.
When a DFHRMCAL request is issued, control passes to DFHEIP, to DFHERM (the external resource manager interface program), and then to the task-related user exit. DFHERM manages the TIEs.
ENABLE, DISABLE, and EXTRACT are all EXEC CICS requests. DFHRMCAL is a macro.
- Application invocations (DFHRMCAL), associated with which are optionally the EDF screen format invocations
- System Programming interface events i.e. INQUIRE EXITPROGRAM commands
- Syncpoint related events
- Task termination events
- CICS termination.
By default, it is assumed that task-related user exits are interested in application invocations only.