rednight
0x2B|~0x2B,That's not a question,Just do it.
posts - 32, comments - 14, trackbacks - 0, articles - 0
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2009年8月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
工作學習(11)
日志(3)
隨筆檔案
2007年4月 (1)
2007年3月 (3)
2007年1月 (6)
2006年12月 (1)
2006年11月 (5)
2006年9月 (4)
2006年8月 (12)
搜索
最新評論
1.?re: XA分布式事務處理
評論內容較長,點擊標題查看
--天龍
2.?re: Cannot Forward a Response that is Already Committed
怎么解決。。。
--qingwei
3.?re: Cannot call Connection.commit in distributed transaction
Great!
--qx
4.?re: XA分布式事務處理[未登錄]
當然可以,只要異構數據庫也支持xa接口
--quaff
5.?re: XA分布式事務處理
可以異構數據庫兩階段事務提交嗎?
--柴
閱讀排行榜
1.?XA分布式事務處理(11408)
2.?Cannot Forward a Response that is Already Committed(7046)
3.?世界主要船公司名稱及網址(3194)
4.?Cannot call Connection.commit in distributed transaction(2492)
5.?批量刪除數據庫記錄(2150)
評論排行榜
1.?XA分布式事務處理(6)
2.?Cannot Forward a Response that is Already Committed(5)
3.?Cannot call Connection.commit in distributed transaction(2)
4.?java.lang.InstantiationException: org.apache.tools.ant.Main (1)
5.?groupable header table(0)
XA分布式事務處理
Posted on 2007-03-06 10:11
rednight
閱讀(11408)
評論(6)
編輯
收藏
在談到
XA
規范之前,必須首先了解分布式事務處理(
Distributed Transaction Processing
,
DTP
)的概念。
Transaction
,即事務,又稱之為交易,指一個程序或程序段,在一個或多個資源如
數據庫
或文件上為完成某些功能的執行過程的集合。
LU
人的博客
)vqfhOBA
分布式事務處理是指一個事務可能涉及多個數據庫操作,分布式事務處理的關鍵是必須有一種方法可以知道事務在任何地方所做的所有動作,提交或回滾事務的決定必須產生統一的結果(全部提交或全部回滾)。
X/Open
組織(即現在的
Open Group
)定義了分布式事務處理模型。
X/Open DTP
模型(
1994
)包括應用程序(
AP
)、事務管理器(
TM
)、資源管理器(
RM
)、通信資源管理器(
CRM
)四部分。一般,常見的事務管理器(
TM
)是交易中間件,常見的資源管理器(
RM
)是數據庫,常見的通信資源管理器(
CRM
)是消息中間件。
通常把一個數據庫內部的事務處理,如對多個表的操作,作為本地事務看待。數據庫的事務處理對象是本地事務,而分布式事務處理的對象是全局事務。
所謂全局事務,是指分布式事務處理環境中,多個數據庫可能需要共同完成一個工作,這個工作即是一個全局事務,例如,一個事務中可能更新幾個不同的數據庫。對數據庫的操作發生在系統的各處但必須全部被提交或回滾。此時一個數據庫對自己內部所做操作的提交不僅依賴本身操作是否成功,還要依賴與全局事務相關的其它數據庫的操作是否成功,如果任一數據庫的任一操作失敗,則參與此事務的所有數據庫所做的所有操作都必須回滾。
LU
人的博客
8v:d?(~;~$A-Q9V D
一般情況下,某一數據庫無法知道其它數據庫在做什么,因此,在一個
DTP
環境中,交易中間件是必需的,由它通知和協調相關數據庫的提交或回滾。而一個數據庫只將其自己所做的操作(可恢復)影射到全局事務中。
XA
就是
X/Open DTP
定義的交易中間件與數據庫之間的接口規范(即接口函數),交易中間件用它來通知數據庫事務的開始、結束以及提交、回滾等。
XA
接口函數由數據庫廠商提供。
XA
與兩階段提交協議
通常情況下,交易中間件與數據庫通過
XA
接口規范,使用兩階段提交來完成一個全局事務,
XA
規范的基礎是兩階段提交協議。
在第一階段,交易中間件請求所有相關數據庫準備提交(預提交)各自的事務分支,以確認是否所有相關數據庫都可以提交各自的事務分支。當某一數據庫收到預提交后,如果可以提交屬于自己的事務分支,則將自己在該事務分支中所做的操作固定記錄下來,并給交易中間件一個同意提交的應答,此時數據庫將不能再在該事務分支中加入任何操作,但此時數據庫并沒有真正提交該事務,數據庫對共享資源的操作還未釋放(處于上鎖狀態)。如果由于某種原因數據庫無法提交屬于自己的事務分支,它將回滾自己的所有操作,釋放對共享資源上的鎖,并返回給交易中間件失敗應答。
在第二階段,交易中間件審查所有數據庫返回的預提交結果,如所有數據庫都可以提交,交易中間件將要求所有數據庫做正式提交,這樣該全局事務被提交。而如果有任一數據庫預提交返回失敗,交易中間件將要求所有其它數據庫回滾其操作,這樣該全局事務被回滾。
以一個全局事務為例,
AP
首先通知交易中間件開始一個全局事務,交易中間件通過
XA
接口函數通知數據庫開始事務,然后
AP
可以對數據庫管理的資源進行操作,數據庫系統記錄事務對本地資源的所有操作。操作完成后交易中間件通過
XA
接口函數通知數據庫操作完成。交易中間件負責記錄
AP
操作過哪些數據庫(事務分支)。
AP
根據情況通知交易中間件提交該全局事務,交易中間件會通過
XA
接口函數要求各個數據庫做預提交,所有數據庫返回成功后要求各個數據庫做正式提交,此時一筆全局事務結束。
XA
規范對應用來說,最大好處在于事務的完整性由交易中間件和數據庫通過
XA
接口控制,
AP
只需要關注與數據庫的應用邏輯的處理,而無需過多關心事務的完整性,應用設計開發會簡化很多。
具體來說,如果沒有交易中間件,應用系統需要在程序內部直接通知數據庫開始、結束和提交事務,當出現異常情況時必須由專門的程序對數據庫進行反向操作才能完成回滾。如果是有很多事務分支的全局事務,回滾時情況將變得異常復雜。而使用
XA
接口,則全局事務的提交是由交易中間件控制,應用程序只需通知交易中間件提交或回滾事務,就可以控制整個事務(可能涉及多個異地的數據庫)的全部提交或回滾,應用程序完全不用考慮沖正邏輯。
在一個涉及多個數據庫的全局事務中,為保證全局事務的完整性,由交易中間件控制數據庫做兩階段提交是必要的。但典型的兩階段提交,對數據庫來說事務從開始到結束(提交或回滾)時間相對較長,在事務處理期間數據庫使用的資源(如邏輯日志、各種鎖),直到事務結束時才會釋放。因此,使用典型的兩階段提交相對來說會占用更多的資源,在網絡條件不是很好,如低速網、網絡顛簸頻繁,情況會更為嚴重。
當一個全局事務只涉及一個數據庫時,有一種優化方式,即一階段提交。當
AP
通知交易中間件提交事務時,交易中間件直接要求數據庫提交事務,省去兩階段提交中的第一階段,可以縮短處理一個事務的時間,以提高事務處理的效率。作為兩階段提交的一種特例,與兩階段一樣,一階段提交也是標準的。
Feedback
#
re: XA分布式事務處理
回復
更多評論
2008-01-24 21:03 by
baixch
透徹!
#
re: XA分布式事務處理[未登錄]
回復
更多評論
2008-01-25 10:26 by
XXX
妙
#
re: XA分布式事務處理[未登錄]
回復
更多評論
2008-09-20 20:19 by
棒棒
如果在第二階段,某個數據庫正式提交數據失敗了,這時如何處理?
#
re: XA分布式事務處理
回復
更多評論
2009-07-06 11:18 by
柴
可以異構數據庫兩階段事務提交嗎?
#
re: XA分布式事務處理[未登錄]
回復
更多評論
2009-08-24 16:30 by
quaff
當然可以,只要異構數據庫也支持xa接口
#
re: XA分布式事務處理
回復
更多評論
2013-08-26 13:43 by
天龍
# re: XA分布式事務處理[未登錄] 回復 更多評論
2008-09-20 20:19 by 棒棒
如果在第二階段,某個數據庫正式提交數據失敗了,這時如何處理?
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Powered by:
BlogJava
Copyright © rednight
主站蜘蛛池模板:
国产精品观看在线亚洲人成网
|
久久精品亚洲综合专区
|
亚洲国产综合精品中文第一
|
亚洲一区二区三区免费在线观看
|
亚洲国产成人久久综合碰碰动漫3d
|
99久久免费国产精精品
|
久久久久亚洲精品无码网址
|
xxxxx做受大片视频免费
|
亚洲av无码不卡私人影院
|
美女黄频免费网站
|
亚洲欧洲日产国码一级毛片
|
久久er国产精品免费观看8
|
亚洲精品乱码久久久久久
|
国产美女精品视频免费观看
|
亚洲人成电影网站色www
|
午夜视频免费观看
|
曰批免费视频播放免费
|
久久精品国产精品亚洲下载
|
免费观看成人久久网免费观看
|
亚洲国产精品第一区二区
|
91在线品视觉盛宴免费
|
亚洲av无码偷拍在线观看
|
亚洲国产中文字幕在线观看
|
国产性生大片免费观看性
|
亚洲美女中文字幕
|
日本不卡视频免费
|
天堂在线免费观看
|
亚洲精品国产啊女成拍色拍
|
成年美女黄网站18禁免费
|
一级a性色生活片久久无少妇一级婬片免费放
|
亚洲日本在线观看视频
|
最近2018中文字幕免费视频
|
国产亚洲精品成人AA片
|
男人的天堂亚洲一区二区三区
|
羞羞漫画登录页面免费
|
久久精品国产精品亚洲精品
|
免费无码VA一区二区三区
|
精品亚洲国产成人
|
在线观看亚洲成人
|
两性刺激生活片免费视频
|
一级毛片视频免费观看
|