dingfirst

          On the Road

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            8 隨筆 :: 2 文章 :: 3 評(píng)論 :: 0 Trackbacks
           ???分布式事務(wù)處理是指一個(gè)事務(wù)可能涉及多個(gè)數(shù)據(jù)庫(kù)操作,分布式事務(wù)處理的關(guān)鍵是必須有一種方法可以知道事務(wù)在任何地方所做的所有動(dòng)作,提交或回滾事務(wù)的決定必須產(chǎn)生統(tǒng)一的結(jié)果(全部提交或全部回滾)。
           ???
          ??????X/Open組織(即現(xiàn)在的Open Group)定義了分布式事務(wù)處理模型。X/Open DTP模型(1994)包括應(yīng)用程序(AP)、事務(wù)管理器(TM)、資源管理器(RM)、通信資源管理器(CRM)四部分。一般,常見(jiàn)的事務(wù)管理器(TM)是交易中間件,常見(jiàn)的資源管理器(RM)是數(shù)據(jù)庫(kù),常見(jiàn)的通信資源管理器(CRM)是消息中間件。為表述方便起見(jiàn),在本文中直接以其常見(jiàn)表現(xiàn)形式進(jìn)行描述。


          ??????一般情況下,某一數(shù)據(jù)庫(kù)無(wú)法知道其它數(shù)據(jù)庫(kù)在做什么,因此,在一個(gè)DTP環(huán)境中,交易中間件是必需的,由它通知和協(xié)調(diào)相關(guān)數(shù)據(jù)庫(kù)的提交或回滾。而一個(gè)數(shù)據(jù)庫(kù)只將其自己所做的操作(可恢復(fù))影射到全局事務(wù)中。?
          ??????
          ??????XA就是X/Open DTP定義的交易中間件與數(shù)據(jù)庫(kù)之間的接口規(guī)范(即接口函數(shù)),交易中間件用它來(lái)通知數(shù)據(jù)庫(kù)事務(wù)的開(kāi)始、結(jié)束以及提交、回滾等。XA接口函數(shù)由數(shù)據(jù)庫(kù)廠商提供。

          ??????通常情況下,交易中間件與數(shù)據(jù)庫(kù)通過(guò)XA 接口規(guī)范,使用兩階段提交來(lái)完成一個(gè)全局事務(wù),XA規(guī)范的基礎(chǔ)是兩階段提交協(xié)議。?

          ??????在第一階段,交易中間件請(qǐng)求所有相關(guān)數(shù)據(jù)庫(kù)準(zhǔn)備提交(預(yù)提交)各自的事務(wù)分支,以確認(rèn)是否所有相關(guān)數(shù)據(jù)庫(kù)都可以提交各自的事務(wù)分支。當(dāng)某一數(shù)據(jù)庫(kù)收到預(yù)提交后,如果可以提交屬于自己的事務(wù)分支,則將自己在該事務(wù)分支中所做的操作固定記錄下來(lái),并給交易中間件一個(gè)同意提交的應(yīng)答,此時(shí)數(shù)據(jù)庫(kù)將不能再在該事務(wù)分支中加入任何操作,但此時(shí)數(shù)據(jù)庫(kù)并沒(méi)有真正提交該事務(wù),數(shù)據(jù)庫(kù)對(duì)共享資源的操作還未釋放(處于上鎖狀態(tài))。如果由于某種原因數(shù)據(jù)庫(kù)無(wú)法提交屬于自己的事務(wù)分支,它將回滾自己的所有操作,釋放對(duì)共享資源上的鎖,并返回給交易中間件失敗應(yīng)答。

            在第二階段,交易中間件審查所有數(shù)據(jù)庫(kù)返回的預(yù)提交結(jié)果,如所有數(shù)據(jù)庫(kù)都可以提交,交易中間件將要求所有數(shù)據(jù)庫(kù)做正式提交,這樣該全局事務(wù)被提交。而如果有任一數(shù)據(jù)庫(kù)預(yù)提交返回失敗,交易中間件將要求所有其它數(shù)據(jù)庫(kù)回滾其操作,這樣該全局事務(wù)被回滾。
          ?

          ??????摘自http://www.huihoo.com/middleware/trade_middleware.html??? 交易中間件與XA規(guī)范

          ?

          posted on 2006-07-11 19:44 dingfirst 閱讀(1190) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阳曲县| 揭东县| 方城县| 金坛市| 清徐县| 汝阳县| 梅州市| 平原县| 桃江县| 宁津县| 始兴县| 恩施市| 平潭县| 襄汾县| 沙坪坝区| 竹溪县| 常山县| 财经| 鲁山县| 加查县| 云和县| 元阳县| 朝阳区| 东辽县| 宁都县| 营山县| 酒泉市| 循化| 荔波县| 定州市| 利辛县| 上高县| 柘荣县| 枝江市| 伊川县| 新沂市| 靖宇县| 洛川县| 江门市| 乌海市| 麦盖提县|