分布式事務(五) ContextUtil類的方法

2021-04-12 20:36:30 字數 872 閱讀 3521

contextutil類的方法

contextutil類有四個方法可用於影響完成位和一致位的值。表7-3中列出了這些方法和它們對完成位和一致位的影響。值得注意的是,呼叫這些方法只會影響事務元件方法的結果,但不會立即生效。

表7-3  contextutil類的方法

contextutil方法

完成位一致位

描述setcomplete

true

true

方法setcomplete標記此物件為完成的和一致的。這個物件的工作已完成,事務可完成。當方法返回時,物件被釋放,並且投票支援完成事務。

setabort

true

false

物件的工作已完畢,但是不成功,事務必須被中止。當方法返回時,物件被釋放,但是它的事務投票將會支援中止事務。

enablecommit

false

true

物件的工作還沒完成,它還不能被釋放。然而,事務的第一階段是成功完成了的。當方法返回時,物件仍然保持啟用,但是會投票支援事務完成。如果事務流的根物件在該物件被再次呼叫前完成了事務的話,該物件會被釋放。

disablecommit

false

false

與enablecommit類似,disablecommit表明物件的工作也還沒完成。物件的狀態會被保持,所以它可以被再次呼叫。然而,與enablecommit方法相反,如果在它再次被呼叫前事務已經完成,它會投票中止事務。

如果事務已完成則完成位被忽略

儘管enablecommit方法和disablecommit方法設定完成位為false, 這樣物件的狀態得以保持,但物件還是有被釋放的可能,這樣狀態就會丟失。當事務結束後(不管是完成了還是中止了),所有參與事務的物件都將被釋放。

分布式 分布式事務

是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...

分布式事務 分布式事務的實現

如果在多個服務中需要對不同的資料庫進行操作。因為不同服務操作的資料庫都不同,所以保證在同乙個事務中完成操作顯然是不科學的。那實現分布式事務的思想 1 方法入口,建立一條日誌記錄,狀態定義為初始狀態,即儲存本條日誌記錄 可以儲存在資料庫中,也可以寫出到本地磁碟檔案 2 可以在非同步執行緒或在定時任務中...

分布式之分布式事務

被人問到分布式事務,之前學rabbitmq 的時候學到過rabbitmq 高階的事務,因為沒有用過,所有沒有回答好。這裡總結一下。1.單機版事務。事務的四大特性 acid a.原子性 b.一致性 c.隔離性 d.永續性 單機事務可以通過設定事務的隔離級別 參見spring 的事務隔離級別 2.分布式...