悲觀離線鎖定
作者 David Rice
透過一次只允許一個業務交易存取資料,來防止並發業務交易之間的衝突。
如需完整說明,請參閱 EAA 的 P 第 426 頁
由於離線並發性涉及處理橫跨多個要求的業務交易資料,因此最簡單的方法似乎是為整個業務交易開啟系統交易。然而,遺憾的是,這並不總是能順利運作,因為交易系統並非針對長時間交易而設計。因此,您必須使用多個系統交易,在這種情況下,您必須自行管理資料的並發存取。
第一個嘗試的方法是樂觀離線鎖定 (416)。然而,此模式有其問題。如果多人在業務交易中存取相同的資料,其中一人將輕鬆提交,而其他人則會發生衝突並失敗。由於衝突只會在業務交易結束時才被偵測到,因此受害者將執行所有交易工作,最後才發現整件事都會失敗,而他們的時間也將被浪費。如果這在冗長的業務交易中經常發生,系統很快就會變得非常不受歡迎。
悲觀離線鎖定透過完全避免衝突來防止衝突。它強制業務交易在開始使用資料之前取得資料鎖定,因此,在大部分時間,一旦您開始業務交易,您就可以相當確定您將完成它,而不會因並發控制而被彈回。