Task-related user exit recovery
Task-related user exit recovery, also known as the resource manager interface (RMI) recovery, ensures that changes to recoverable resources performed by an external resource manager in a logical unit of work are either all committed or all backed out.
Design overview
During the execution of a CICS® task, the CICS recovery manager communicates with the resource manager task-related user exit to prepare to commit, to commit unconditionally, or to back out. The purpose of these calls is to ensure that changes to recoverable resources performed in a unit of work (UOW) are either all committed or all backed out, if there is a failure anywhere in CICS or in any of the external resource managers.
Each UOW created by Recovery Manager Domain is identified by a UOW_ID and a Local UOW_ID. The LOCAL UOWID is an eight byte value whose format is easy for CICS to identify whether the UOW originated before or after an initial start.
When the resource manager receives the call to commit unconditionally or to back out, it takes the corresponding irreversible step, if possible. If the action is successful, the resource manager sends the appropriate return code. If not, it sends a return code which requests that CICS record the state of the UOW, and tries to resolve the status at a later time. For details, see How it works: The two-phase commit process.
Recovery manager domain maintains the status of UOWs that require resynchronization, until all participants in the UOW have successfully resynchronized. Recovery manager domain maintains these UOWs across cold, warm and emergency start of CICS. An initial start of CICS however will mean that Recovery manager domain will lose this information and resynchronization will not be possible.
The RMI also supports an optimized syncpoint process to improve performance under certain conditions where a single-phase commit can be used. With single phase commit Recovery manager does not have to maintain resynchronization information for the RMI. For details about this optimized process, see How it works: The single-phase commit process.
Modules
| Module | Function |
|---|---|
| DFHERMRS | DFHERMRS is invoked by DFHEISP as a result of an EXEC CICS RESYNC command. It attaches a CRSY task for each UOW identified in the IDLIST. Calls Recovery manager to delete unwanted resynchronization information. |
| DFHRMSY | A CRSY task (running program DFHRMSY) is attached for each indoubt UOW appearing in the indoubt list for an EXEC CICS RESYNC command. This program then issues the appropriate ‘phase 2 of syncpoint’ request, that is, commit or backout, to the external resource manager that issued the EXEC CICS RESYNC. |
Exits
No global user exit points are provided for this function.
Trace
- AP 2540 ) For trace level RI Level 1
- AP 2541 )
- AP 2548 ) For trace level RI level 2
- AP 2549 )
- AP 2560 ) For trace level RI level 1
- AP 2561 )
External interfaces
Calls are made from DFHRMSY, via DFHERM, to the task-related user exit to provide information about the disposition of the UOW, when resynchronization of in-doubts is taking place.