The Oracle Two Phase Commit

What is an Oracle two phase commit? 

Oracle developed the two phase commit to allow the controlling SQL to ensure that all remote sites have committed their data before issuing a local commit.  While data integrity is managed very effectively within a single database with row locking, deadlock detection and roll-back features, distributed data integrity is far more complex.

Recovery in a distributed database environment involves ensuring that the entire transaction has completed successfully before issuing a commit to each of the subcomponents in the overall transaction. This can often be a cumbersome chore, and it is the idea behind the two-phase commit.

One popular alternative to the two-phase commit is replicating information and relying on asynchronous replication techniques to enforce the data integrity. Asynchronous replication refers to Oracle snapshots and requires a master-slave type of configuration, whereby a master database relays updates to the slave database on a periodic basis, using Oracle snapshots to create master-slave replication. The snapshot approach makes sense when an overall system does not require instant referential integrity.

Follow the link below for further insight on the two phase commit:

http://www.dba-oracle.com/t_two_phase_commit_2pc.htm