兩階段提交協議

2021-08-24 18:51:46 字數 757 閱讀 5817

在第一階段,交易中介軟體請求所有相關資料庫準備提交(預提交)各自的事務分支,以確認是否所有相關資料庫都可以提交各自的事務分支。當某一資料庫收到預提交後,如果可以提交屬於自己的事務分支,則將自己在該事務分支中所做的操作固定記錄下來,並給交易中介軟體乙個同意提交的應答,此時資料庫將不能再在該事務分支中加入任何操作,但此時資料庫並沒有真正提交該事務,資料庫對共享資源的操作還未釋放(處於鎖定狀態)。如果由於某種原因資料庫無法提交屬於自己的事務分支,它將回滾自己的所有操作,釋放對共享資源上的鎖,並返回給交易中介軟體失敗應答。

在第二階段,交易中介軟體審查所有資料庫返回的預提交結果,如所有資料庫都可以提交,交易中介軟體將要求所有資料庫做正式提交,這樣該全域性事務被提交。而如果有任一資料庫預提交返回失敗,交易中介軟體將要求所有其它資料庫回滾其操作,這樣該全域性事務被回滾。

偽**:

假設有兩個connection, con1, con2, 大體的過程如下,

con1 = xaresouce1.getconnection...

con2 = xaresouce2.getconnection...

con1 do some thing.

con2 do some thing.

after they finish.

pre1 = xaresouce1.prepare();

pre2 = xaresouce2.prepare();

if( both pre1 and pre2 are ok)else

兩階段提交協議

閱讀次數 142次 類別 我的文章 永久鏈結 trackback 實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元件來控制。實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元...

兩階段提交協議

兩階段提交協議 實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元件來控制。此協議中的五個步驟如下 應用程式呼叫事務協調器中的提交方法。事務協調器將聯絡事務中涉及的每個資源管理器,並通知它們準備提交事務 這是第一階段的開始 為 了以肯定的...

兩階段提交協議

實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元件來控制。此協議中的五個步驟如下 應用程式呼叫事務協調器中的提交方法。事務協調器將聯絡事務中涉及的每個資源管理器,並通知它們準備提交事務 這是第一階段的開始 為 了以肯定的方式響應準備階段...