| 共有領域のロック | 共有領域のロック解除 | |
|---|---|---|
| ア | 時点(a) | 時点(c) |
| イ | 時点(a) | 時点(d) |
| ウ | 時点(b) | 時点(c) |
| エ | 時点(b) | 時点(d) |
ITパスポート 2013年 (平成25年 秋期) 問67「あるトランザクション処理は,①共有領域から値を読み取り,②読み取った値に数値を加…」の正解と解説です。ITパスポート試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約82%です。
イ. ロック:時点(a), 解除:時点(d)
正答率 82.1%(1,049人中 861人が正解)
共有資源を読み取って加工し書き戻す一連の処理は,他のトランザクションが間に割り込むと矛盾(Lost Update問題等)が生じます。これを防ぐため,読み取り前にロックを取得し,書き込み完了後にロックを解除する範囲が必要です。よってロックは時点(a)で取得し,解除は時点(d)です。データベースの2相ロック(2PL:Two-Phase Locking)の基本概念で,排他制御の原則です。範囲を狭めると不整合が発生するため,処理全体を排他制御で囲む必要があり,これがトランザクションのACID特性の一部を支えます。