How Does it Work?
Normally, an application that uses distributed transactions is a component in an application server. The application server environment takes care of all transaction processing. The application component just accesses one or several database servers (Resource Managers, RM's) using normal programming interfaces.
Note that the application server or Transaction Manager (TM) are not part of the Mimer database server. These components are obtained from other sources.
When the application server environment starts a new transaction, it contacts the Transaction Manager, which assigns a new transaction id (XID) to the transaction. All operations done by the application components are automatically assigned to this XID.
When the transaction is ready to commit, the TM executes the commit operations according to the two-phase commit protocol.
In phase 1, each participating RM is asked if it is ready to prepare for commit. By replying yes, the RM promises that it is able to commit the transaction and remember everything about the transaction. Although it can not commit the transaction yet, it must secure all information on disk to make sure that no information can be lost. If the RM determines that it can not commit the transaction at a later stage, it may answer no to the TM. In this case, the TM aborts its preparation phase. It contacts all RMs again and tells them to abort the transaction.
If the TM got a yes from all RMs in the first phase, phase 2 begins. Each RM is asked to commit the transactions.
Mimer Information Technology AB
Voice: +46 18 780 92 00
Fax: +46 18 780 92 40