分布式事務相關

2021-04-13 02:28:16 字數 1707 閱讀 4865

com

[計] 小型可執行程式的副檔名, 序列通訊埠

[域] commercial organizations,商業組織,公司

the component object model元件物件模型

我 們必須認識到,元件服務就是windows xp和2000中的com+,是微軟元件物件模型(com)和微軟事務伺服器(mts)的新發展。com+能夠處理許多原來必須由開發人員通過程式設計處理的 資源管理任務,例如,執行緒安全和分配,通過提供執行緒池、物件池和執行時物件啟用,它可以自動地使應用程式具有更大的可伸縮性。com+還通過提供對事務的 支援,甚至是跨越網路中多個資料庫的事務,來保證資料的完整性。

與應用程式一樣,作為應用程式一部分的元件也需要執行時間服務,在windows 2000和xp中,這種服務就是com+元件服務。com+是在基本的com之上又新增了一系列的其他服務,例如事務佇列元件(qc)、安全、松偶合事件 (lce)、執行時啟用(jita)、基本偵聽服務、物件池等,對com的增強包括對執行緒和安全性的改進以及非同步com的引入,新服務包括同步、物件池、 佇列元件和一種新的分布式應用。

總體來看,如果所有資料的修改僅依靠單個資料來源就能完成,則這個事務就相當簡單了。然而,隨著商業需求的日益增加,應用程式變得越來越複雜,經常需要訪問 多個資料庫,這些資料庫通常分布在不同的地方,這就是分布式事務。分布式事務修改的資料儲存在多個或多種型別的資料來源中,這些資料來源分布在多台機器上,甚 至更複雜的情況。

設想有乙個事務,要求資料變化發生在兩個分離的資料庫中,仍然要求所有的acid特性測試能夠滿足。基本的事務處理不能滿足要求,因為如果其中一 個資料庫伺服器失敗,無法確保另外乙個資料庫的資料還沒有提交並成為永久的。換句話說,無法協調發生在不同地方的多個事務處理就沒有辦法保證事務的原子 性。

例如,執行在機器a上的乙個元件是單個事務的組成部分之一,元件能夠利用機器b上的sql server執行資料庫事務。組成事務的另一組件用執行在機器c上的oracle伺服器執行資料庫事務。這三颱機器執行著四塊不同的**,它們全都要參與到這個事務中。

即使通過com+隱藏分布式事務中的細節,也必要研究和了解分布式事務的「幕後」結構。請記住這些acid特性適用於所有型別的事務,不論事務涉及的資料庫是什麼型別或數量有多少。

使用ms dtc進行兩階段提交

讓我們再看一下上述分布式事務的例子。如果oracle伺服器停機了,如何保證事務的原子性。答案是使用兩階段提交(two-phase commit,2pc)和通過microsoft分布式事務協調器(ms dtc)協調。

msdtc是最先整合在sql server中,現在已成為com+必不可少的部分,通過在事務處理中加入其他的因子,ms dtc確認所有的過程完成並提交他們。

讓我們進一步研究ms dtc,了解其工作方式。為了能用兩階段提交協議進行協調,事務中的每個資料來源必須裝有ms dtc。在這些安裝中,主要的協調器總是在事務的起源之處。這個主要的協調器稱為提交協調器,它負責確保事務的提交或終止。不管事務是成功地提交還

是回滾,提交協調器都負責向客戶應用程式返回乙個報告。

在兩階段提交中第一階段是準備階段,每個伺服器執行它接收的指令,但所有應寫到磁碟的內容都被緩衝,如圖1 9 - 1所示。

一旦伺服器已執行了指令,就通知提交協調器關於事務的狀況,如圖1 9 - 2所示。

第二階段稱為提交階段。如果提交協調器接收到來自每個資料來源的「準備提交」通知,就提交事務,如圖1 9 - 3。

然而,如果從某一受影響的資料來源接收到失敗資訊,提交協調器將執行回滾,並且通知客戶應用程式,見圖1 9 - 4。

分布式 分布式事務

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

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

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

分布式之分布式事務

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