アプリケーションレベルでのトランザクション制御について

アプリケーションレベルでのトランザクション制御には、楽観的排他制御と悲観的排他制御があります。

  • 悲観的排他制御について
    • データを参照した時点で、その後に行う更新までをロックする。
    • たとえば、登録画面=>プレビュー画面=>登録結果画面という画面の流れがあったとすると、プレビュー画面の表示時にロックをかけて、更新結果画面表示時にロックを解除するというイメージ。このようにアプリケーション側の処理が複雑になるという特徴がある。
  • 楽観的排他制御について
    • データを参照した時点はロックせず、更新時において参照時に取得したバージョン情報やレコードの更新日時を確認することにより、データの他者更新をチェックする。頻繁に更新処理が発生するwebシステムでは通常、こちらを選択する。