Transaction recovery in online IMS systems
IMS automatically backs out transactions if the IMS online system determines that transaction processing cannot proceed because of problems directly or indirectly to do with data sharing, or because the resource is unavailable, and if you specified SERIAL=NO in the TRANSACT system definition macro (or accepted it as the default).
If you specify SERIAL=YES in the TRANSACT system definition macro, IMS puts the transaction back on the front of the transaction queue to be processed first-in-first-out, and stops the transaction (USTOP state).
If the transactions do not use the DL/I INIT STATUS GROUPA call, IMS places transactions on either the suspend queue or the transaction queue when:
- A transaction requests a lock held by an IMS system identified to a failed IRLM.
- A transaction requests a lock held by a failed IMS system.
- The transaction attempts to access a database at a level higher than that for which the IMS system is authorized.
- A transaction requires a database that is stopped or locked.
- The MTO enters a /DBRECOVERY DB or UPDATE DB STOP(ACCESS) command.
IMS sends message DFS3324I, saying that the transaction is suspended, for each individual transaction that is suspended.
IMS saves the suspend queue across any restart, except a cold start, and all transactions on the suspend queue are eligible for reprocessing. When IMS reprocess the transactions, IMS releases them to the message queues and schedules them in the normal way.
Several conditions prompt IMS to attempt to reprocess these transactions:
- A restart of the online IMS system, including after an XRF takeover
- A communication from another IMS system performing restart or from a batch IMS system that has completed backout
- A reconnection of an IMS online system to an IRLM
- The MTO command, /DEQUEUE SUSPEND
- The MTO commands, /START DB or UPDATE DB START(ACCESS) to start the database
- A manual or automatic rebuild of the CF structures with SETXCF START,REBUILD,STRNAME= command.
IMS issues message DFS3336I when it attempts to reprocess suspended transactions.