IBM SC34-7012-01 Server User Manual


 
v If both deadlocked resources are CICS resources (but not both VSAM resources),
or one is CICS and the other DL/I, CICS abends the task whose DTIMOUT
period elapses first. It is possible for both tasks to time out simultaneously. If
neither task has a DTIMOUT period specified, they both remain suspended
indefinitely, unless one of them is canceled by a master terminal command.
The abended task may then be backed out by dynamic transaction backout, as
described in “Transaction backout” on page 74. (Under certain conditions, the
transaction can be restarted automatically, as described under “Abnormal
termination of a task” on page 93. Alternatively, the terminal operator may restart
the abended transaction.)
For more information, see “Designing to avoid transaction deadlocks” on page 146.
User exits for transaction backout
You can include your own logic in global user exit programs that run during
dynamic transaction backout and backout at emergency restart.
There are exits in the file control recovery control program, and in the user log
record recovery program (which is driven at emergency restart only). Transient
data and temporary storage backouts do not have any exits.
Where you can add your own code
At emergency restart, you can add your own code in post-initialization programs
that you nominate in the program list table.
About this task
You might want to include functions in global user exit programs that run during
an emergency restart:
v Process file control log records containing the details of file updates that are
backed out
v Deal with the backing-out of additions to data set types that do not support
deletion (VSAM ESDS and BDAM), by flagging the records as logically deleted
v Handle file error conditions that arise during transaction backout
v Process user recovery records (in the XRCINPT exit of the user log record
recovery program during emergency restart)
v Deal with the case of a non-RLS batch program having overridden RLS retained
locks (this should not occur very often, if at all)
You could consider using the following exits:
1. XRCINIT—invoked at the beginning and end of the user log record recovery
program
2. XRCINPT—invoked whenever a user log record is read from the system log
3. XFCBFAIL—file backout failure exit
4. XFCLDEL—file logical delete exit
5. XFCBOVER—file backout non-RLS override exit
6. XFCBOUT—file backout exit
You can use any of these exits to add your own processing if you do not want the
default action, but do not set the UERCPURG return code for these exits because
the exit tasks cannot be purged. To use these exits at emergency restart:
160 CICS TS for z/OS 4.1: Recovery and Restart Guide