XA

XA

XA協議由Tuxedo首先提出的,並交給X/Open組織,作為資源管理器(資料庫)與事務管理器的介面標準。目前,Oracle、Informix、DB2和Sybase等各大資料庫廠家都提供對XA的支持。XA協議採用兩階段提交方式來管理分散式事務。XA介面提供資源管理器與事務管理器之間進行通信的標準介面。XA協議包括兩套函數,以xa_開頭的及以ax_開頭的。

簡介


取決於上下文, XA 有多種意思. 我們常見的資料庫連接事務中的 XA 是指由 X/Open 組織提出的分散式事務處理的規範. XA 規範主要定義了事務管理器(Transaction Manager)和局部資源管理器(Local Resource Manager)之間的介面.

操作


以下的函數使事務管理器可以對資源管理器進行的操作:
1)xa_open,xa_close:建立和關閉與資源管理器的連接。
2)xa_start,xa_end:開始和結束一個本地事務。
3)xa_prepare,xa_commit,xa_rollback:預提交、提交和回滾一個本地事務。
4)xa_recover:回滾一個已進行預提交的事務。
5)ax_開頭的函數使資源管理器可以動態地在事務管理器中進行註冊,並可以對XID(TRANSACTION IDS)進行操作。
6)ax_reg,ax_unreg;允許一個資源管理器在一個TMS(TRANSACTION MANAGER SERVER)中動態註冊或撤消註冊。