樂觀及悲觀記錄鎖定

Rational® ClearQuest® 中的樂觀及悲觀鎖定實作的概觀。
在資料庫鎖定資料兩種模型:

在兩種資料鎖定模型中,當變更已確定至資料庫之後,會釋放鎖定。

依預設,Rational ClearQuest 使用樂觀鎖定。

Rational ClearQuest 7.1 版新增悲觀鎖定的支援,提供一個機制來防止發生多個使用者同時編輯一筆記錄的狀況。藉由施行循序記錄修改,悲觀鎖定模型可確保嘗試同步更新相同記錄的使用者將遭到鎖定。若要啟用悲觀鎖定,您必須建立或升級綱目儲存庫及相關的使用者資料庫至功能層次 7,且綱目開發人員必須將連結鉤程式碼新增至綱目中所要的記錄類型。如需修改綱目的相關資訊,請參閱「說明」中的使用 Rational ClearQuest Designer 開發綱目,以及 Rational ClearQuest API 參考手冊。

下列各節詳細說明樂觀鎖定與悲觀鎖定的差異。

樂觀鎖定

樂觀鎖定模型(也稱為樂觀並行控制),是一種用於關聯式資料庫(不使用記錄鎖定)的並行控制方法。樂觀鎖定容許多個使用者嘗試更新相同的記錄,而不用通知使用者有其他的使用者也試圖更新該記錄。唯有已確定記錄時才會驗證記錄變更。如果一個使用者順利更新記錄,則會通知嘗試確定並行更新的其他使用者有衝突發生。

樂觀鎖定模型的優點之一是避免在動作期間鎖定記錄的額外負荷。如果沒有同時更新項目,則此模型可提供快速更新。

若預期並行記錄更新很少發生或鎖定額外負荷太高,則樂觀鎖定是很有用的方式。在樂觀鎖定的 Rational ClearQuest 實作中,當多個使用者同時編輯一筆記錄時,當一位使用者的變更已確定之後,將會拒絕其他使用者的變更,且必須儲存和手動合併資料衝突。

悲觀鎖定

悲觀鎖定模型會防止同步更新記錄。只要有一個使用者開始更新記錄,就會將記錄加上鎖定。會通知試圖更新此記錄的其他使用者,有另一個使用者正在更新。其他使用者必須等待第一個使用者完成提交變更的工作,也就是等待釋放記錄鎖定。之後,另一個使用者才能根據前一個使用者所做的變更來繼續做變更。

悲觀鎖定模型的優點之一是它會藉由防止衝突來避免衝突解決的問題。會序列化更新資料,且每一個後續的更新會從前一個使用者已確定的記錄變更開始。

悲觀鎖定是一個很有用的方式,後續的更新項目可以延遲到完成前一個更新為止。這通常意味著更新項目是在短時間間隔發生。


意見