一個特定的商業邏輯操作可能涉及多個程式在多台電腦上執行。 在此設計中,除非所有相關程式成功執行,否則交易不被視為完整。 為了驗證所有參與該交易的其他程式是否已完成交易,必須採用兩階段提交(2PC)協定。
「交易」一詞(或其衍生性商品,如交易性)可能具有誤導性。 在許多情況下,交易一詞指的是在大型主機上執行且不使用 2PC 協定的單一程式。 但在其他情況下,它用來表示由多個程式在多台使用 2PC 協定的電腦上執行的操作。
2PC 協定之所以得名,是因為它在執行操作前會經過以下兩個階段:
第一階段——準備。 在此階段,交易中涉及的每個程式會向 TP 管理器發送訊息,例如Microsoft分散式交易協調器(MS DTC),告知TP管理器已準備好並有能力執行其部分操作。 此階段也稱為預備階段,因為軟體程式已準備好要提交變更或回復變更。 若 TP Manager 從每個相關計畫獲得確認,則進入第二階段。
第二階段——提交或回滾。 在此階段,TP Manager 指示每個程式確認或復原交易中所請求的所有變更。 正確執行的回滾應該能將系統恢復到其原始狀態。
備註
介於第一階段與第二階段之間的狀態稱為「疑慮狀態」。 在應用程式中使用 .NET 的開發者可以決定哪些部分需要存取 TP,哪些部分不需要。 TI 也將此選擇擴展到大型主機,處理需要交易的呼叫與不需要交易的呼叫。 對於需要完全整合基於 Windows 的兩階段提交和大型主機的同步第二級交易的應用程式,TI 提供所有必要的功能。 TI 可以做到這點,不需要你更改客戶端應用程式,也不需要將可執行程式碼放到大型主機上,且對大型主機的 TP 幾乎沒有或幾乎沒有修改。 用戶端應用程式不需要區分 TI 元件與其他元件參考。
下圖展示了基於 Windows 的用戶端應用程式如何隱含地使用 Microsoft 分散式交易協調器(DTC)來協調涉及 SQL Server 與 CICS TP 的分散式交易的兩階段提交。 DTC 負責協調兩件電腦的交易。
用戶端應用程式使用 Transaction Integrator 和 DTC 來協調 SQL Server 與 CICS 應用程式之間的兩階段提交
備註
交易整合器僅支援透過 LU 6.2(APPC)並以 Windows 發起處理連接大型主機時的 2PC。 直接透過 TCP/IP 連接時,TI 沒有支援雙電腦。
用戶端應用程式使用 TI 與 DTC
兩階段提交(2PC)交易包含多個元件。 要成功使用交易整合器(TI),您必須了解以下 2PC 元件及術語:
同步點等級2
TP 可透過使用 LU6.2 協定,在三個同步層級之一互動:同步等級 0、同步等級 1 或同步等級 2。 這三個同步等級中,只有一個 Sync Level 2 使用 2PC 協定。 同步等級 0 沒有訊息完整性,而同步等級 1 則支援有限的資料完整性。
TP 管理器
交易程式(TP)管理器是一項系統服務,負責協調交易結果,以實現原子性。 TP 管理器確保資源管理器能一致決定交易是否應該提交或中止。 Windows TP Manager 是 MS DTC。
重新同步服務
LU6.2 重新同步服務是主機整合伺服器(Host Integration Server)中的一個元件,與 MS DTC 合作,在兩件電腦交易中任一節點失敗時自動恢復至一致狀態。 安裝主機整合伺服器時,LU6.2 重新同步服務會預設安裝。
Resource Manager
資源管理器是一種管理持久資料的系統服務。 伺服器應用程式使用資源管理器來維護應用程式的持久狀態,例如可用庫存、待處理訂單及應收帳款的紀錄。 資源管理器與交易管理器合作,為應用程式提供原子性與隔離性的保證(透過 2PC 協定)。 Microsoft、SQL Server™ 和 TI 就是資源管理器的例子。