兩階段認可

指定的商務邏輯作業可能涉及在多部電腦上執行的多個程式。 在此設計中,除非涉及的所有程式都順利完成執行,否則不會將交易視為已完成。 若要讓這些程式確認屬於交易一部分的其他所有程式都已完成其交易,它們必須採用兩階段認可 (2PC) 通訊協定。

交易 (或其任何衍生專案,例如交易式) ,可能會產生誤導。 在許多情況下,交易一詞描述在不使用 2PC 通訊協定的大型主機電腦上執行的單一程式。 不過,在其他情況下,它用來表示使用 2PC 通訊協定之多部電腦上的多個程式所執行的作業。

2PC 通訊協定因此命名,因為它會在認可執行作業之前採用下列兩個階段:

  • 階段 1 - 準備。 在這個階段中,與交易相關的每個程式都會傳送訊息給 TP Manager,例如 Microsoft Distributed Transaction Coordinator (MS DTC) ,通知 TP 管理員已準備好且能夠執行作業的一部分。 這個階段也稱為準備,因為程式已準備好認可變更或復原變更。 如果 TP 管理員從涉及的每個程式收到確認,則會繼續進行階段 2。

  • 階段 2—認可或復原。 在這個階段中,TP 管理員會指示每個程式認可或復原在交易期間要求的所有變更。 正確執行的復原應該會將系統傳回其原始狀態。

注意

階段 1 和階段 2 之間的狀態稱為不確定狀態。 在其應用程式中使用 .NET 的開發人員可以決定應用程式哪些部分需要存取 TP,以及哪些部分不需要。 TI 也會藉由處理需要不需要交易和呼叫的呼叫,將此選項延伸至大型主機。 對於需要 Windows 型雙階段認可與大型主機型同步層級 2 交易之間完整整合的應用程式,TI 會提供所有必要的功能。 TI 不需要變更用戶端應用程式,而不需要在大型主機上放置可執行程式碼,而且不需要變更大型主機 IP。 用戶端應用程式不需要區分 TI 元件和任何其他元件參考。

下圖顯示 Windows 型用戶端應用程式如何隱含地使用 Microsoft Distributed Transaction Coordinator (DTC) ,協調涉及SQL Server和 CICS TP 之分散式交易的兩階段認可。 DTC 協調 2PC 交易。

顯示使用交易整合器和 DTC 之用戶端應用程式的影像,以協調SQL Server與 CICS 應用程式之間的兩階段認可。
使用交易整合器和 DTC 的用戶端應用程式,協調SQL Server與 CICS 應用程式之間的兩階段認可

注意

透過 LU 6.2 (APPC 連線到大型主機時,交易整合器僅支援 2PC) 搭配 Windows 起始處理。 透過 TCP/IP 直接連線時,沒有 2PC 支援可透過 TI 使用。

使用 TI 和 DTC 的用戶端應用程式

兩階段認可 (2PC) 交易牽涉到許多元件。 若要成功使用交易整合器 (TI) ,您必須瞭解下列 2PC 元件和術語:

同步點層級 2
TP 可以在三個同步層級的其中一個使用 LU6.2 通訊協定彼此互動:同步層級 0、同步層級 1 或同步層級 2。 只有這三個同步層級之一同步層級 2 會使用 2PC 通訊協定。 同步層級 0 沒有訊息完整性,而同步層級 1 則支援有限的資料完整性。

TP 管理員
交易程式 (TP) Manager 是一項系統服務,負責協調交易的結果,以達到不可部分完成性。 TP 管理員可確保資源管理員達到交易是否應認可或中止的一致決策。 Windows TP 管理員是 MS DTC。

重新同步處理服務
LU6.2 Resync Service 是主機整合伺服器的元件,可搭配 MS DTC 執行自動復原至一致狀態,因為 2PC 交易中的任何時間點發生失敗。 安裝主機整合伺服器時,預設會安裝 LU6.2 Resync 服務。

Resource Manager
資源管理員是系統服務,可管理長期資料。 伺服器應用程式會使用資源管理員來維護應用程式的持久性狀態,例如可用清查、擱置訂單和帳戶的記錄。 資源管理員會與交易管理員合作,使用 2PC 通訊協定) ,為應用程式提供不可部分完成性和隔離 (保證。 Microsoft SQL Server ™和 TI 是資源管理員的範例。

另請參閱

Windows 交易與大型主機交易
線上交易處理