Sync point determination for the transaction in process

IMS DEDB Fast Recovery invalidates transactions that did not reach a sync point, determines the actions for in-doubt transactions, and closes the log data sets.

Subsections:

Transactions not reaching a sync point

IMS DEDB Fast Recovery performs a sync point failure processing for the transactions that did not reach their sync point. If such a transaction has updated the DL/I database, an X'38' log record is added to the last-used OLDS. Any DB update done by this transaction needs to be backed out. If an FP log record has been created by this transaction, an X'5938' log record is added to the last-used OLDS. IMS DEDB Fast Recovery assumes that the DEDB area updated by this transaction needs no recovery.

In-doubt transactions

In a two-phase commit process environment such as DBCTL, if there is a transaction with in-doubt status, IMS DEDB Fast Recovery reads the Resync control statements and determines whether the transaction is committed or aborted.

Resync commit process
IMS DEDB Fast Recovery writes an X'5637' log record into the last OLDS. The recovery for the transaction is necessary, and IMS DEDB Fast Recovery will do it in the second log processing. If the transaction updated a DL/I database, it does not have to be backed out. When IMS DEDB Fast Recovery updates the DBRC RECON data sets in the DEDB recovery and the recovery status list creation step, IMS DEDB Fast Recovery deletes the in-doubt EEQE from the DBRC RECON data set if the in-doubt EEQE for the updated DL/I database is registered in the DBRC RECON data set and all in-doubt transactions that update the DL/I database are committed.
Resync abort process
IMS DEDB Fast Recovery writes an X'5638' log record into the last OLDS. The recovery for the transaction is unnecessary, and IMS DEDB Fast Recovery will not do it in the second log processing. If the transaction updated a DL/I database, the DL/I database needs to be backed out. When IMS DEDB Fast Recovery updates the DBRC RECON data sets in the DEDB recovery and the recovery status list creation step, IMS DEDB Fast Recovery does not delete the in-doubt EEQE from the DBRC RECON data set even if the in-doubt EEQE for the updated DL/I database is registered in the DBRC RECON data set.
Related reading: For information about the DBRC RECON data set update processing, see Updating the DBRC RECON data set.

Creating the Resync Control Statement list

If there is no transaction with in-doubt status, IMS DEDB Fast Recovery writes the status in the Resync Control Statement list.

If there is a transaction with in-doubt status, IMS DEDB Fast Recovery lists all the specified Resync control statements in the Resync Control Statement list. If the control statement has an error, or if the necessary control statement is not specified, IMS DEDB Fast Recovery writes an error message as well in the list. And IMS DEDB Fast Recovery lists the recovery tokens of all in-doubt transactions. It generates the skeleton of the Resync control statements that are necessary for the next IMS DEDB Fast Recovery execution if the output data set is specified in RSYLIST DD statement. IMS DEDB Fast Recovery terminates with return code 16 without recovering the DEDB.

Closing the OLDS

The log blocks that were left in the WADS are written into the buffers during the OLDS closing processing. If a DFSWADSn DD statement is specified in the JCL, IMS DEDB Fast Recovery opens the data set. If there is no DFSWADSn DD statement, the data set is allocated dynamically by the request block that is registered in the IMS program library using the DFSMDA macro. Sync point log records that are created during the sync point determination process for the in-process transactions are written into a new log block buffer. IMS DEDB Fast Recovery adds these log blocks to the OLDS and then closes the OLDS. If DBRC=Y, it also updates the OLDS information in the RECON data set.