Backward recovery
When IMS or an application program fails, you need to remove incorrect or unwanted changes from the database. Backward recovery or backout allows you to remove these incorrect updates.
The three types of backout are:
- Dynamic backout
- Backout during emergency restart
- Batch backout
IMS performs the first two types of backout automatically, and you initiate the last one manually.
IMS automatically (dynamically) backs out database changes in an online environment when any of the following occurs:
- An application program terminates abnormally
- An application program issues a rollback call
- An application program tries to access an unavailable database
- A deadlock occurs
In a batch environment, you can specify that IMS should dynamically back out database changes if the batch job abends, or issues a rollback call.
During restart processing after a system failure, IMS determines if any application programs were executing at the time of failure and if they made changes that need to be backed out. Before IMS restarts, it scans log records for these changes, and then backs out the changes from the affected databases. If IMS runs out of memory while scanning the log, you could get a message telling you to back out the changes manually.
You can use the IMS Batch Backout utility (DFSBBO00) to remove database changes made during execution of a DL/I or DBB region or an online program. You can use the utility to back out changes since the last checkpoint. You can select a specific checkpoint if the batch region does not use data sharing, and if it is not a BMP. For BMPs, do not specify a checkpoint because the utility always backs out BMPs to the last checkpoint on the log.
If dynamic backout or backout during emergency restart fails, IMS stops the databases for which backout did not complete, and retries the backouts when you restart the databases.