A mechanism using interval timers to drive transaction resolution proactively.
Original Publication Date: 2000-Apr-01
Included in the Prior Art Database: 2003-Jun-19
Disclosed is a method which ensures the completion of transactions adhering to the two-phase commit protocol. Each transaction in a transaction processing system is monitored by a timer. The timer continuously monitors the transaction's progress through the two-phase commit transaction states and initiates actions to advance the transaction towards completion. Transaction processing systems must guarantee that all transactions eventually either commit or rollback. This guarantee must be provided even if an application, resource manager, transaction manager, or operating system fails (repeatedly). This disclosure describes a mechanism which ensures transactions (local or distributed) complete in a timely manner even in the face of such software failures. For each incomplete transaction in the system, a timer is set up to expire periodically until the transaction has completed (committed or rolled back). Each time the timer expires, an asynchronous thread is scheduled to execute a piece of code known as the resolver . The resolver checks the state of the transaction and does processing which attempts to advance the state of the transaction towards completion. If the transaction is not complete, the timer is reset so that the resolver is rescheduled again in the future. This mechanism is applied to all transactions those initiated during normal system operation normal transactions and those restarted after a system crash restarted transactions) .