Distributed Transactions and the Two-Phase Commit Protocol

Previous Next

See Also

A distributed transaction is a transaction that consists of data manipulations made on one or several databases, using one or more database connections. A non-distributed transaction is a transaction that consists of data manipulations made on only one database, using only one database connection (which is the case for the two-tier USoft client/server architecture). The MTS architecture supports distributed transactions: a transaction can consist of data manipulations made by several components on several databases.

Distributed transactions benefit from the two-phase commit protocol. This protocol provides a standard way of handling distributed transactions. MTS also uses this two-phase commit protocol.

When the two-phase commit protocol is used for a distributed transaction, the transaction will only be committed if ALL manipulations made by Rules Engines and MTS components involved in that transaction, on the same or different databases, are successfully committed. If one of the components fails to commit, the whole transaction is aborted and a rollback occurs.