W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使用 XA 功能時,事務管理器將使用 XA 資源實例來準備和協(xié)調(diào)每個事務分支,然后適當?shù)靥峤换蚧貪L所有事務分支。
XA 功能的關(guān)鍵組件包括 XA 數(shù)據(jù)源、XA 連接、XA 資源和事務編號。
XA 數(shù)據(jù)源是連接池數(shù)據(jù)源和其他數(shù)據(jù)源的擴展,在概念和功能上相似。
每個資源管理器將有一個 XA 數(shù)據(jù)源實例,并用于分布式事務中。通常,在中間層軟件中創(chuàng)建 XA 數(shù)據(jù)源實例。
XA 數(shù)據(jù)源產(chǎn)生 XA 連接。
XA 連接是池連接的擴展,在概念和功能上相似。XA 連接封裝了物理數(shù)據(jù)庫連接。各個連接實例是這些物理連接的臨時句柄。
XA 連接實例只對應于一個會話,盡管該會話可以由多個邏輯連接實例按順序使用,例如池連接實例。
通常,可以從中間層軟件中的 XA 數(shù)據(jù)源實例獲取 XA 連接實例。如果分布式事務將涉及同一數(shù)據(jù)庫中的多個會話,則可以從單個 XA 數(shù)據(jù)源實例獲得多個 XA 連接實例。
XA 連接產(chǎn)生 OracleXAResource 實例和 JDBC 連接實例。
事務管理器使用 XA 資源來協(xié)調(diào)分布式事務的事務分支。
通常,在中間層軟件中,可以從每個 XA 連接實例中獲得一個 OracleXAResource 實例。OracleXAResource 實例和 XA 連接實例之間存在一對一的關(guān)聯(lián)。同樣,OracleXAResource 實例與會話之間也存在一對一的關(guān)聯(lián)。
在典型情況下,中間層組件會將 OracleXAResource 實例移交給事務管理器,以用于協(xié)調(diào)分布式事務。
因為每個 OracleXAResource 實例都對應一個會話,所以在任何給定時間只能有一個與 OracleXAResource 實例關(guān)聯(lián)的活動事務分支,但也可能會有其他暫停的事務分支。
每個 OracleXAResource 實例可以操作與其相關(guān)聯(lián)的會話事務分支,包括啟動、結(jié)束、準備、提交或回滾。
準備步驟是兩階段提交操作的第一步。事務管理器將向每個 OracleXAResource 實例發(fā)出 ?PREPARE
?。一旦事務管理器看到每個事務分支的操作已成功準備,它將向每個 OracleXAResource 實例發(fā)出 ?COMMIT
? 來提交所有更改。
事務 ID 用于標識事務分支。每個 ID 包括事務分支 ID 組件和分布式事務 ID 組件。這也就是分支與分布式事務關(guān)聯(lián)的方式。與給定的分布式事務關(guān)聯(lián)的所有 OracleXAResource 實例都具有一個事務 ID,該事務 ID 包含相同的分布式事務 ID 組件。
使用事務 ID ?xid
? 啟動一個松散耦合的事務。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: