2 相コミットプロトコルを用いたトランザクションの同時実行制御に関する記
述のうち, 適切なものはどれか。

 ア すべてのトランザクションが直列に制御され,デッドロックが発生するこ
  とはない。

 イ トランザクションのコミット順序は,実行時の時刻順となるように制御さ
  れる。

 ウ トランザクションは, 自分が獲得したロックをすべて解除した後にだけ,
  コミット操作を実行できる。

 エ トランザクションは, 必要なロック獲得命令をすべて実行した後にだけ,
  ロック解除命令を実行できる。

■キーワード■ 2 相コミットプロトコル

■解答■
  テクニカルエンジニア(データベース)午前平成14年問32

 エ トランザクションは, 必要なロック獲得命令をすべて実行した後にだけ,
  ロック解除命令を実行できる。

> 2 フェーズコミット
> トランザクションのコミット処理を 2 段階のフェーズにわけることによって
> 原子性を保証します。
>
> 第 1 フェーズ
>  各データベースに対してコミットできる状態であるかどうかを確認します。
> 各データベースがコミットできる常態かどうかをアプリケーションに伝えると
> こを「投票する」と呼びます。
>  第 1 フェーズは、アプリケーションがすべてのデータベースから投票を受
> 信するまでの段階を表します。
>
> 第 2 フェーズ
>  第 1 フェーズの各データベースの投票結果をもとに、すべてのデータベー
> スに対してコミットかロールバックかの決定を行います。すべてのデータベー
> スから「準備完了」の投票を受け取った場合のみ、各データベースに対してコ
> ミットの指示を送ります。この指示によって、該当のトランザクションが実際
> にコミットされます。
>  しかし、データベースから 1 つでも「拒否」の投票を受け取れば、すべて
> のデータベースに対してロールバックの指示を送ることになります。また、指
> 定時間内にデータベースから投票結果を受け取れなかった場合にも、すべての
> データベースに対してロールバックの指示が送られます。この指示によって、
> 該当のトランザクション全体が差し戻されます。
>  第 2 フェーズは、すべてのデータベースがコミットかロールバックかを実
> 行する段階を表します。
>
> 分散トランザクションに挑戦しよう!
> 〜 第二回 2 フェーズコミットのしくみ〜 より抜粋
> http://www.ogis-ri.co.jp/otc/hiroba/technical/DTP/step2/#ref2

 どうもありがとうございました。

                                                                                                                                              • -