2相コミットとは?にそうこみっと
2相コミットとは、複数のデータベースにまたがる更新を、全部反映するか全部取り消すかのどちらかに揃えるための手順。まとめ役が各データベースに確定できるかを尋ねる準備の段階と、全員が可と答えたときだけ確定を指示する段階の、2つに分けて進めるところが名前の由来。
最終更新:2026-10-09
この語が出る過去問を解く →背景
1台のデータベースなら、途中で失敗した更新はそのデータベースが自分で巻き戻せる。ところが売上と在庫のように保存先が分かれると、片方だけ成功して片方が失敗する状態が起こりうる。片方だけ反映された記録は、後から人が突き合わせて直すしかない。これを起こさないために、確定の合図を全員の返事が揃った後に出す、という約束事が必要になった。
具体例
PostgreSQLやOracle DatabaseはXAという規約でこの手順に対応している。売上を書くデータベースと在庫を減らすデータベースが別でも、両方が確定できると答えたときだけ確定を指示するので、売上だけ立って在庫が減らない状態にならない。
試験での引っ掛け
準備の段階で可と答えた側は、確定の合図が来るまでデータを押さえて待つ。この間にまとめ役が故障すると待ち続けて動けなくなる点が最大の弱点で、2相なら絶対に失敗しないという理解は誤り。
関連用語
出た過去問
出典:平成29年度 春期 基本情報技術者試験 午前 問28(IPA)
分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,全てのサイトが確定可能である場合,更新処理…
正解:2相コミット
要点:2相コミットは全サイトの可否確認後にまとめて確定する
2相コミットは、分散した複数サイトの更新をまとめて確定させるための制御方式です。第1段階でコーディネータが各サイトに「コミットできるか」を問い合わせ、全サイトが可と答えた場合だけ第2段階で確定を指示します。1つでも不可があれば全体を取り消すので、サイト間の整合性が保たれます。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。