平成26年度春期 応用情報技術者試験 午前 問29
分散データベースにおいて図のようなコマンドシーケンスがあった。調停者がシーケンスaで発行したコマンドはどれか。ここで,コマンドシーケンスの記述にUMLのシーケンス図の記法を用いる。

- ア COMMITの実行要求
- イ ROLLBACKの実行要求
- ウ 判定レコードの書出し要求
- エ ログ書出しの実行要求
解答・解説を見る
正解:イ
AI解説
分散データベースの2相コミットでは、調停者(コーディネータ)が第1相で全参加者にコミット可否を問い合わせ、全員が「コミット可」のときだけ第2相でCOMMITを指示する。図では参加者の一つが「コミット不可」を応答している(または応答がない)ため、調停者はシーケンスaで全参加者にROLLBACKの実行要求を発行し、トランザクション全体を取り消して原子性を保つ。 ア: COMMITの実行要求を発行できるのは、全参加者から「コミット可」の応答を得た場合だけである。図では不可応答があるため誤り。 イ: 正しい。1相目で一つでもコミット不可があれば、調停者は全参加者にROLLBACKを指示する。 ウ: 判定レコードの書出しは調停者自身が判定結果をログに記録する内部処理であり、参加者へ発行するコマンドとしての場面が異なる。 エ: ログ書出しは各サイトが更新前後の情報を記録する処理であり、コミット可否確定後に調停者が発行するコマンドではない。 💡 2相コミットは「全員賛成なら可決、1人でも反対なら否決」の多数決ならぬ全会一致方式。「一つでも不可→全員ROLLBACK」がお決まりの出題パターンである。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。