10.8.4 Checking the status when the transaction has been rolled back
This subsection describes how to check whether the transaction has been rolled back after execution of an application or command. This subsection also describes how to check the progress of the rollback when a transaction has been rolled back.
- ■ Checking whether the transaction has been rolled back
-
To check whether the transaction has been rolled back, execute the adbls -d cnct command. Check the output item STATUS to determine whether there is an application or command for which "ROLLBACKING" is displayed for that item. If "ROLLBACKING" is displayed, the corresponding application or command has been rolled back.
- ■ Checking the progress of the rollback
-
If the rollback operation for a transaction takes more time than you expected, check whether the KFAA81215-I message has been output. In the KFAA81215-I message, you can check the progress of database recovery processing in connection with the rollback of a transaction.
Based on the information in the KFAA81215-I message, estimate the time necessary until the database recovery processing is complete and the subsequent processing can resume.
Note that the KFAA81215-I message is output at regular intervals, according to the value specified for the adb_log_rec_msg_interval operand in the server definition.
- ■ What to be performed after the rollback operation is completed
-
After the rollback operation of a transaction is completed, check whether the KFAA81211-I message has been output. In the KFAA81211-I message, information regarding the transaction recovery processing is output.
Check the KFAA81211-I message and consider reducing the number of updates of database per transaction. For example, consider increasing the number of commits for a transaction that took a long time for recovery processing.
Note that the KFAA81211-I message is output if there is a transaction that took a longer time for its recovery processing than the value specified for the adb_log_rec_msg_interval operand in the server definition.
Based on the transaction ID that is output to the KFAA81211-I message, you can identify the SQL statement that was executed for the corresponding transaction. Use the transaction ID as the key, and check the value for tran_id that was output to the "SQL statement execution information" in the SQL trace information. The SQL statement whose tran_id matches the transaction ID is the SQL statement executed for the corresponding transaction. For details about the SQL statement execution information, see (2) SQL statement execution information in 10.11.2 Information that is output as SQL trace information.