Recovering a complex application requires detailed application knowledge. Programs cannot be restarted. In this case, commitment control helps solve these problems.
Sometimes record changes might have to be made with an application program or data file utility to reverse the files to just before the last complex transaction began. This task becomes more complex if multiple users are accessing the files at the same time. In this case, commitment control can help. Commitment control locks records from other users during a complex transaction. This ensures that other users do not use the records until the transaction is complete. At the end of the transaction, the program issues the commit operation, freeing the records. However, if the system ends abnormally before performing the commit operation, all record changes for that job since the last time a commit operation occurred are rolled back. Any affected records that are still locked are then unlocked. In other words, database changes roll back to a clean transaction boundary.