Distributed and In-Doubt Transactions In a distributed transaction the integrity is ensured by Oracle's two-phase commit mechanism. In the prepare phase, the initiating node in the transaction asks the other participating nodes to promise to commit or roll back the transaction. During the commit phase, the initiating node asks all participating nodes to commit the transaction. If this outcome is not possible, then all nodes are asked to roll back.
If the transaction fails because of a system or network error the transaction becomes in-doubt.
Distributed transactions can become in-doubt in the following ways:
A server machine running Oracle software crashes.
A network connection between two or more Oracle databases involved in distributed processing is disconnected.
An unhandled software error occurs.
The RECO process automatically resolves in-doubt transactions when the machine, network, or software problem is resolved. Until RECO can resolve the transaction, the data is locked for both reads and writes. Oracle blocks reads because it cannot determine which version of the data to display for a query.
Source:
Oracle database links survival guide
http://www.akadia.com/services/ora_database_links.html
Two-Phase Commit Mechanism
http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_txns003.htm