データベーススペシャリスト平成27年春期 午前Ⅱ 問12

問12

分散データベースのトランザクションは複数のサブトランザクションに分割され,複数のサイトで実行される。このとき,トランザクションのコミット制御に関する記述のうち,適切なものはどれか。
  • 2相コミットでは,サブトランザクションが実行される全てのサイトからコミット了承応答が主サイトに届いても,主サイトはサブトランザクションごとにコミット又はロールバックの異なる指示をする場合がある。
  • 2相コミットを用いても,サブトランザクションが実行されるサイトに主サイトの指示が届かず,サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
  • 2相コミットを用いると,サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。
  • 集中型データベースのコミット制御である1相コミットで,個々のサイトが独自に分散データベースのコミットを行っても,サイト間のデータベースの一貫性は保証できる。
  • [出題歴]
  • データベース R3秋期 問12
  • データベース H17春期 問41
  • データベース H24春期 問12
  • データベース H30春期 問13

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

  • 2相コミットでは、全てのサブトランザクションが一律でコミット又はアボートのどちらかで終了します。全てのサブトランザクションからコミット了承応答を受け取った主サイトは、コミット実行メッセージをブロードキャストします。
  • 正しい。主サイトにコミットの可否を応答したサブトランザクションは、いつでもコミットまたはロールバックが可能なセキュア状態になります。この状態は主サイトからの指示を受け取るまで何の処理も行えません。
    このため各サブトランザクションからの応答を受けとった主サイトが、行うべきアクションを各サイトに送信する直前(第2相の開始時)にダウンすると、主サイトからのメッセージがサブトランザクションに届かず待ち状態のままになってしまいます。
    12.gif/image-size:559×259
  • 2相コミットでは、全てのサブトランザクションが一律でコミット又はアボートのどちらかで終了します。1つのサブトランザクションがロールバックされた場合、他のサブトランザクションにもアボートメッセージが通達されロールバックが実行されます。
  • サブトランザクションは、1つのトランザクションを各データベースサイトが担当する処理ごとに分割したものです。一部のサブトランザクションだけがコミットされ、他のサブトランザクションがロールバックされるとデータベースに不整合が生じる可能性があります。また一部の処理だけがコミットされた状態はトランザクションの原子性にも反します。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop