Although a distributed system could suffer a number of failures of a different
kind simultaneously, the normal approach to increased reliability is to
consider this unlikely, and deal with network failures and service failures
separately. This has lead to the <#662#> two phase commit<#662#> protocol, as
in figure #fntwopc#663>.
A Transaction Agent (TA) acts on behalf of all the servers (S) involved in sub
transactions in this transaction.
#figure664#
Figure: Two Phase Commit
Considering failures, either the TA, the S's can fail, or the messages 1.3, 2.2 and 2.4 can be lost.
The resulting cases are shown in figure #fnfail#667>.
#figure668#
Figure: Failures During Transactions