dingfirst

          On?。簦瑁濉。遥铮幔?/p>

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


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

          ??????通常情況下,交易中間件與數據庫通過XA 接口規范,使用兩階段提交來完成一個全局事務,XA規范的基礎是兩階段提交協議。?

          ??????在第一階段,交易中間件請求所有相關數據庫準備提交(預提交)各自的事務分支,以確認是否所有相關數據庫都可以提交各自的事務分支。當某一數據庫收到預提交后,如果可以提交屬于自己的事務分支,則將自己在該事務分支中所做的操作固定記錄下來,并給交易中間件一個同意提交的應答,此時數據庫將不能再在該事務分支中加入任何操作,但此時數據庫并沒有真正提交該事務,數據庫對共享資源的操作還未釋放(處于上鎖狀態)。如果由于某種原因數據庫無法提交屬于自己的事務分支,它將回滾自己的所有操作,釋放對共享資源上的鎖,并返回給交易中間件失敗應答。

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

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

          ?

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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 自贡市| 新津县| 台山市| 色达县| 焦作市| 宜昌市| 汉川市| 莲花县| 柳河县| 香河县| 富蕴县| 祥云县| 泌阳县| 尖扎县| 沅陵县| 游戏| 屏山县| 泉州市| 新津县| 黄大仙区| 华容县| 九龙城区| 自贡市| 两当县| 宁都县| 虞城县| 梁平县| 萨嘎县| 西和县| 桑日县| 江川县| 陕西省| 宁南县| 浏阳市| 铅山县| 松原市| 伊金霍洛旗| 黑龙江省| 顺义区| 射洪县| 武冈市|