74.4. Two-Phase Transactions
  
   PostgreSQL
  
  supports a two-phase commit (2PC)
   protocol that allows multiple distributed systems to work together
   in a transactional manner.  The commands are
  
   PREPARE
   TRANSACTION
  
  ,
  
   COMMIT PREPARED
  
  and
  
   ROLLBACK PREPARED
  
  .  Two-phase transactions
   are intended for use by external transaction management systems.
  
   PostgreSQL
  
  follows the features and model
   proposed by the X/Open XA standard, but does not implement some less
   often used aspects.
 
  When the user executes
  
   PREPARE TRANSACTION
  
  , the
   only possible next commands are
  
   COMMIT PREPARED
  
  or
  
   ROLLBACK PREPARED
  
  . In general, this prepared
   state is intended to be of very short duration, but external
   availability issues might mean transactions stay in this state
   for an extended interval. Short-lived prepared
   transactions are stored only in shared memory and WAL.
   Transactions that span checkpoints are recorded in the
  
   pg_twophase
  
  directory.  Transactions
   that are currently prepared can be inspected using
  
   
    pg_prepared_xacts
   
  
  .