《機械翻訳》PostgreSQLは、複数の分散システムがトランザクション方式で連携することを可能にする2フェーズコミット(2PC)プロトコルをサポートしています。
コマンドはPREPARE TRANSACTION、COMMIT PREPARED、ROLLBACK PREPAREDです。
2フェーズトランザクションは外部のトランザクション管理システムで使用することを目的としています。
PostgreSQLは、X/Open XA標準で提案されている機能とモデルに従いますが、あまり使用されていないいくつかの側面は実装しません。
《機械翻訳》ユーザがPREPARE TRANSACTIONを実行すると、次のコマンドとしてはCOMMIT PREPAREDまたはROLLBACK PREPAREDしか使用できません。
一般的に、この準備済み状態は非常に短い期間であることを意図していますが、外部での可用性の問題により、トランザクションがこの状態に長期間とどまる可能性があります。
短命な準備済みトランザクションは共有メモリとWALにのみ格納されます。
チェックポイントをまたいで準備されたトランザクションはpg_twophaseディレクトリに記録されます。
現在準備済みのトランザクションはpg_prepared_xactsを使用して検査できます。