專利名稱:事務提交系統(tǒng)、方法及設備的制作方法
技術領域:
本發(fā)明涉及事務處理技術領域,尤其涉及一種事務提交系統(tǒng)、方法及設備。
背景技術:
分布式事務處理(DTP, Distributed Transaction Processing)是指一個事務可能涉及到多個數(shù)據(jù)庫服務器的操作,DTP的對象一般是全局事務,每個數(shù)據(jù)庫服務器執(zhí)行的操作為該全局事務的某個分支事務,例如,某事務為對多個不同的數(shù)據(jù)庫服務器分別進行資源更新,則此事務為全局事務,每個數(shù)據(jù)庫服務器所做的資源更新操作即為對應的分支事務。當處理全局事務時,應用程序需要在程序內(nèi)部直接通知各數(shù)據(jù)庫服務器開始分支事務、結(jié)束分支事務以及提交分支事務,當出現(xiàn)異常情況時,必須由專用程序?qū)Ω鲾?shù)據(jù)庫服務器進行反向操作才能完成事務的回滾,因此當全局事務包含很多個分支事務時,處理過程就非常復雜。針對上述問題,現(xiàn)有技術提出了使用交易中間件協(xié)調(diào)設備來通知和協(xié)調(diào)各數(shù)據(jù)庫服務器進行開始、結(jié)束、提交或回滾分支事務,其中,針對一個全局事務,各數(shù)據(jù)庫服務器的提交分支事務或回滾分支事務的決定必須產(chǎn)生統(tǒng)一的結(jié)果,即全部數(shù)據(jù)庫服務器均提交分支事務或全部數(shù)據(jù)庫服務器均回滾分支事務,如果其中一個數(shù)據(jù)庫服務器的任意一個操作結(jié)果為失敗,則參與該全局事務的所有數(shù)據(jù)庫服務器必須全部回滾分支事務。如圖1所示,為現(xiàn)有技術中全局事務處理方法流程圖,其具體處理流程如下步驟11,應用程序首先通知交易中間件協(xié)調(diào)設備開始一個全局事務;步驟12,交易中間件協(xié)調(diào)設備通過擴展體系(XA,Extended Architecture)接口函數(shù)通知參與該全局事務的各數(shù)據(jù)庫服務器開始對應的分支事務;步驟13,應用程序?qū)Ω鲾?shù)據(jù)庫服務器管理的資源進行相應操作,數(shù)據(jù)庫服務器記錄該全局事務對本地資源的所有操作的操作信息;步驟14,交易中間件協(xié)調(diào)設備在應用程序完成操作后,通過XA接口函數(shù)通知各數(shù)據(jù)庫服務器結(jié)束分支事務;步驟15,應用程序通知交易中間件協(xié)調(diào)設備提交該全局事務; 步驟16,交易中間件協(xié)調(diào)設備通過XA接口函數(shù),要求各個數(shù)據(jù)庫服務器進行預提 、-
父;步驟17,待所有數(shù)據(jù)庫服務器均確認可以提交后,交易中間件協(xié)調(diào)設備要求各個數(shù)據(jù)庫服務器做正式提交;步驟18,各數(shù)據(jù)庫服務器完成提交后,向交易中間件協(xié)調(diào)設備發(fā)送正式提交完成消息,該全局事務結(jié)束;步驟19,若其中一個或幾個數(shù)據(jù)庫服務器不能提交,則交易中間件協(xié)調(diào)設備要求各個數(shù)據(jù)庫服務器進行分支事務回滾;步驟110,各數(shù)據(jù)庫服務器完成分支事務回滾后,向交易中間件協(xié)調(diào)設備發(fā)送回滾完成消息,該全局事務結(jié)束?,F(xiàn)有技術中,一般使用兩階段提交的方式來完成一個全局事務的提交,分別為預提交階段和正式提交階段,如圖2所示,為現(xiàn)有技術中的事務提交方法流程圖,其具體處理流程如下步驟21,交易中間件協(xié)調(diào)設備向各數(shù)據(jù)庫服務器發(fā)送預提交指示消息,提示各個數(shù)據(jù)庫服務器準備提交各自的分支事務;步驟22,數(shù)據(jù)庫服務器接收到預提交指示消息后,若確認可以提交自身的分支事務,則向交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息,若確認不能提交自身的分支事務,則向交易中間件協(xié)調(diào)設備發(fā)送預提交失敗消息;此時數(shù)據(jù)庫服務器并未真正提交或回滾該分支事務,因此數(shù)據(jù)庫服務器并不能釋放該分支事務所占用的資源;步驟23,若所有數(shù)據(jù)庫服務器均發(fā)送了預提交確認消息,則交易中間件協(xié)調(diào)設備向所有數(shù)據(jù)庫服務器發(fā)送正式提交指示消息;步驟M,數(shù)據(jù)庫服務器在接收到正式提交指示消息后,將自身的分支事務進行提交,由于分支事務對應的數(shù)據(jù)始終是保存在回滾段中,因此在正式提交前,數(shù)據(jù)庫服務器不會正式存儲該數(shù)據(jù),一旦確認將該分支事務提交,則數(shù)據(jù)庫服務器將該數(shù)據(jù)正式存入數(shù)據(jù)庫;步驟25,數(shù)據(jù)庫服務器釋放該分支事務所占用的資源;步驟沈,數(shù)據(jù)庫服務器向交易中間件協(xié)調(diào)設備發(fā)送正式提交完成消息;步驟27,若至少一個數(shù)據(jù)庫服務器發(fā)送了預提交失敗消息,則交易中間件協(xié)調(diào)設備向所有數(shù)據(jù)庫服務器發(fā)送回滾指示消息;步驟觀,數(shù)據(jù)庫服務器在接收到回滾指示消息后,將自身的分支事務進行回滾,即將該分支事務已經(jīng)完成的、對數(shù)據(jù)庫服務器的更新操作進行撤銷;步驟四,數(shù)據(jù)庫服務器釋放該分支事務所占用的資源;步驟210,數(shù)據(jù)庫服務器向交易中間件協(xié)調(diào)設備發(fā)送回滾完成消息。其中,步驟21 步驟22為預提交階段,步驟23 步驟210為正式提交階段。由上可見,數(shù)據(jù)庫服務器只有在完成提交(完成正式提交或者完成回滾)后,才能釋放分支事務所占用的資源,若由于網(wǎng)絡信號質(zhì)量較低、交易中間件協(xié)調(diào)設備業(yè)務繁忙或數(shù)據(jù)庫服務器業(yè)務繁忙等原因,交易中間件協(xié)調(diào)設備雖然發(fā)送了正式提交指示消息或回滾指示消息,但是數(shù)據(jù)庫服務器并未接收到,則數(shù)據(jù)庫服務器會一直等待交易中間件協(xié)調(diào)設備的指示,因此耗費了數(shù)據(jù)庫服務器較多的處理資源,使得數(shù)據(jù)庫服務器無法為其他事務分配足夠的處理資源,造成事務在數(shù)據(jù)庫服務器中阻塞,降低了數(shù)據(jù)庫服務器的處理效率, 嚴重時可能導致數(shù)據(jù)庫服務器無法正常工作。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種事務提交系統(tǒng)、方法及設備,用以解決現(xiàn)有技術中存在的耗費了數(shù)據(jù)庫服務器較多的處理資源,數(shù)據(jù)庫服務器的處理效率較低的問題。本發(fā)明實施例技術方案如下一種事務提交系統(tǒng),包括主用交易中間件協(xié)調(diào)設備,還包括數(shù)據(jù)庫服務器和備用交易中間件協(xié)調(diào)設備,其中所述數(shù)據(jù)庫服務器,用于接收主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息,向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息,若在第一規(guī)定時間長度內(nèi)未接收到所述主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,則向所述備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息,接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,并根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾;所述備用交易中間件協(xié)調(diào)設備,用于在接收到所述事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息,確定出主用交易中間件協(xié)調(diào)設備向所述數(shù)據(jù)庫服務器發(fā)送的正式提交指示消息或回滾指示消息后,發(fā)送給所述數(shù)據(jù)庫服務器。一種事務提交方法,該方法包括步驟接收到主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息后,向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;若在規(guī)定時間長度內(nèi)未接收到所述主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,則向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息;以及接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,所述正式提交指示消息或回滾指示消息為備用交易中間件協(xié)調(diào)設備在接收到事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息確定出的;根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。一種事務提交裝置,包括第一接收單元,用于接收主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息;第一發(fā)送單元,用于向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;判斷單元,用于判斷是否在規(guī)定時間長度內(nèi)接收到所述主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息;第二發(fā)送單元,用于在判斷單元的判斷結(jié)果為否時,向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息;第二接收單元,用于接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,所述正式提交指示消息或回滾指示消息為備用交易中間件協(xié)調(diào)設備在接收到事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息確定出的;提交回滾單元,用于根據(jù)第二接收單元接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。一種交易中間件協(xié)調(diào)設備,包括接收單元,用于接收數(shù)據(jù)庫服務器發(fā)送的事務詢問消息;獲得單元,用于獲得對所述數(shù)據(jù)庫服務器進行事務提交管理的主用交易中間件協(xié)調(diào)設備的操作記錄信息;確定單元,用于根據(jù)獲得單元獲得的操作記錄信息,確定所述主用交易中間件協(xié)調(diào)設備向所述數(shù)據(jù)庫服務器發(fā)送的正式提交指示消息或回滾指示消息;發(fā)送單元,用于將確定單元確定出的正式提交指示消息或回滾指示消息發(fā)送給所述數(shù)據(jù)庫服務
ο—種交易中間件協(xié)調(diào)設備,包括第一發(fā)送單元,用于向數(shù)據(jù)庫服務器發(fā)送預提交指示消息;第一判斷單元,用于判斷是否在第一規(guī)定時間長度內(nèi)接收到所述數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息;第二發(fā)送單元,用于在第一判斷單元的判斷結(jié)果為否時,重新向所述數(shù)據(jù)庫服務器發(fā)送預提交指示消息。本發(fā)明實施例技術方案中,數(shù)據(jù)庫服務器接收到主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息后,向主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息,若在規(guī)定時間長度內(nèi)未接收到主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,則向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息,接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,其中正式提交指示消息或回滾指示消息為備用交易中間件協(xié)調(diào)設備在接收到事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息確定出的,數(shù)據(jù)庫服務器根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾,由上可見,若主用交易中間件協(xié)調(diào)設備向數(shù)據(jù)庫服務器發(fā)送了正式提交指示消息或回滾指示消息,而由于網(wǎng)絡信號質(zhì)量較低、主用交易中間件協(xié)調(diào)設備業(yè)務繁忙或數(shù)據(jù)庫服務器業(yè)務繁忙等原因,數(shù)據(jù)庫服務器并未接收至IJ,則此時數(shù)據(jù)庫服務器不再一直等待,而是在到達規(guī)定時間長度后向備用交易中間件協(xié)調(diào)設備詢問,備用交易中間件協(xié)調(diào)設備查詢主用交易中間件協(xié)調(diào)設備的操作記錄,根據(jù)操作記錄確定主用交易中間件協(xié)調(diào)設備向該數(shù)據(jù)庫服務器發(fā)送的是正式提交指示消息還是回滾指示消息,然后將確定出的指示消息發(fā)送給數(shù)據(jù)庫服務器,數(shù)據(jù)庫服務器進一步根據(jù)接收到的指示消息進行事務的正式提交或回滾,從而釋放了事務在數(shù)據(jù)庫服務器中所占用的資源,節(jié)省了數(shù)據(jù)庫服務器較多的處理資源,使得數(shù)據(jù)庫服務器能夠為其他事務分配足夠的處理資源,避免了事務在數(shù)據(jù)庫服務器中發(fā)生阻塞,有效地提高了數(shù)據(jù)庫服務器的處理效率。
圖1為現(xiàn)有技術中,全局事務處理方法流程示意圖;圖2為現(xiàn)有技術中,事務提交方法流程示意圖;圖3為本發(fā)明實施例中,事務提交系統(tǒng)結(jié)構示意圖;圖4為本發(fā)明實施例中,事務提交方法流程示意圖;圖5為本發(fā)明實施例中,事務提交方法具體實現(xiàn)流程示意圖;圖6為本發(fā)明實施例中,事務提交裝置結(jié)構示意圖;圖7為本發(fā)明實施例中,交易中間件協(xié)調(diào)設備結(jié)構示意圖;圖8為本發(fā)明實施例中,交易中間件協(xié)調(diào)設備結(jié)構示意圖。
具體實施例方式下面結(jié)合各個附圖對本發(fā)明實施例技術方案的主要實現(xiàn)原理具體實施方式
及其對應能夠達到的有益效果進行詳細地闡述。如圖3所示,為本發(fā)明實施例中事務提交系統(tǒng)結(jié)構流程圖,包括主用交易中間件協(xié)調(diào)設備31、數(shù)據(jù)庫服務器32以及備用交易中間件協(xié)調(diào)設備33,其中主用交易中間件協(xié)調(diào)設備31,用于在需要數(shù)據(jù)庫服務器32提交事務時,向數(shù)據(jù)庫服務器32發(fā)送預提交指示消息,在接收到所有數(shù)據(jù)庫服務器32發(fā)送的預提交確認消息時, 向所有數(shù)據(jù)庫服務器32發(fā)送正式提交指示消息,在接收到至少一個數(shù)據(jù)庫服務器32發(fā)送的與提交失敗消息時,向所有數(shù)據(jù)庫服務器32發(fā)送回滾指示消息,接收數(shù)據(jù)庫服務器32正式提交事務后發(fā)送的正式提交完成消息,以及數(shù)據(jù)庫服務器32在回滾事務后發(fā)送的回滾完成消息;數(shù)據(jù)庫服務器32,用于接收主用交易中間件協(xié)調(diào)設備31發(fā)送的預提交指示消息,向主用交易中間件協(xié)調(diào)設備31發(fā)送預提交確認消息或預提交失敗消息,若在第一規(guī)定時間長度內(nèi)未接收到主用交易中間件協(xié)調(diào)設備31發(fā)送的正式提交指示消息或回滾指示消息,則向備用交易中間件協(xié)調(diào)設備33發(fā)送事務詢問消息,接收備用交易中間件協(xié)調(diào)設備33 發(fā)送的正式提交指示消息或回滾指示消息,并根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾;備用交易中間件協(xié)調(diào)設備33,用于在接收到數(shù)據(jù)庫服務器32發(fā)送的事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備31的操作記錄信息,并根據(jù)獲得的操作記錄信息,確定出主用交易中間件協(xié)調(diào)設備31向所述數(shù)據(jù)庫服務器32發(fā)送的正式提交指示消息或回滾指示消息后,發(fā)送給所述數(shù)據(jù)庫服務器32。其中,本發(fā)明實施例可以但不限于針對全局事務,此時需要至少兩個數(shù)據(jù)庫服務器32參與該全局事務,每個數(shù)據(jù)庫服務器32負責該全局事務的一個分支事務。主用交易中間件協(xié)調(diào)設備31在發(fā)送給數(shù)據(jù)庫服務器32的預提交指示消息中可以但不限于包含需要數(shù)據(jù)庫服務器32進行提交的分支事務所屬的全局事務的事務標識信息,數(shù)據(jù)庫服務器32根據(jù)該事務標識信息,確定是否能夠提交對應的分支事務,主用交易中間件協(xié)調(diào)設備31在發(fā)送給數(shù)據(jù)庫服務器32的正式提交指示消息或回滾指示消息中可以但不限于包含需要數(shù)據(jù)庫服務器32進行提交的分支事務所屬的全局事務的事務標識信息,數(shù)據(jù)庫服務器32根據(jù)該事務標識信息,進行對應的分支事務的正式提交或回滾。主用交易中間件協(xié)調(diào)設備31將針對各數(shù)據(jù)庫服務器32的操作記錄信息記錄在事務日志文件中,并將事務日志文件存儲在預設的存儲空間,其中操作記錄信息至少記錄了主用交易中間件協(xié)調(diào)設備31向數(shù)據(jù)庫服務器32發(fā)送的各指示消息(例如預提交指示消息、正式提交指示消息或回滾指示消息),還可以記錄發(fā)送各指示消息的時間點信息,當然, 該操作記錄信息還可以記錄數(shù)據(jù)庫服務器32發(fā)送的各消息(例如預提交確認消息、預提交失敗消息、正式提交完成消息或回滾完成消息)以及主用交易中間件協(xié)調(diào)設備31接收到各消息的時間點信息。備用交易中間件協(xié)調(diào)設備33能夠共享該存儲空間中存儲的事務日志文件,即能夠讀取主用交易中間件協(xié)調(diào)設備31記錄的操作記錄信息,那么備用交易中間件協(xié)調(diào)設備33就能夠確定出主用交易中間件協(xié)調(diào)設備31向數(shù)據(jù)庫服務器32發(fā)送的正式提交指示消息或回滾指示消息,然后在數(shù)據(jù)庫服務器32詢問時,將正式提交指示消息或回滾指示消息發(fā)送給數(shù)據(jù)庫服務器32。其中,數(shù)據(jù)庫服務器32發(fā)送給備用交易中間件協(xié)調(diào)設備33的事務詢問消息中包含該數(shù)據(jù)庫服務器33的服務器標識信息,備用交易中間件協(xié)調(diào)設備33根據(jù)上述服務器標識信息,將確定出的正式提交指示消息或回滾指示消息發(fā)送給該數(shù)據(jù)庫服務器32。若備用交易中間件協(xié)調(diào)設備33在主用交易中間件協(xié)調(diào)設備31的操作記錄信息中并未確定出正式提交指示消息或回滾指示消息,即主用交易中間件協(xié)調(diào)設備31未向數(shù)據(jù)庫服務器32發(fā)送正式提交指示消息或回滾指示消息,則認為主用交易中間件協(xié)調(diào)設備31 未接收到數(shù)據(jù)庫服務器32發(fā)送的預提交確認消息或預提交失敗消息,此時備用交易中間件協(xié)調(diào)設備33向數(shù)據(jù)庫服務器32發(fā)送重試消息,指示數(shù)據(jù)庫服務器32向主用交易中間件協(xié)調(diào)設備31發(fā)送預提交確認消息或預提交失敗消息。為了進一步提高數(shù)據(jù)庫服務器32的處理效率,本發(fā)明實施例提出數(shù)據(jù)庫服務器 32在接收到備用交易中間件協(xié)調(diào)設備33發(fā)送的正式提交指示消息或回滾指示消息之前,還進一步重新向主用交易中間件協(xié)調(diào)設備31發(fā)送預提交確認消息或預提交失敗消息,若接收到主用交易中間31件發(fā)送的預提交確認消息或預提交失敗消息,則根據(jù)最先接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。其中數(shù)據(jù)庫服務器32 可以先向主用交易中間件協(xié)調(diào)設備31重新發(fā)送預提交確認消息或預提交失敗消息,然后再向備用交易中間件協(xié)調(diào)設備32發(fā)送事務詢問消息,也可以先向備用交易中間件協(xié)調(diào)設備32發(fā)送事務詢問消息,再向主用交易中間件協(xié)調(diào)設備31重新發(fā)送預提交確認消息或預提交失敗消息,還可以同時向備用交易中間件協(xié)調(diào)設備32發(fā)送事務詢問消息,以及向主用交易中間件協(xié)調(diào)設備31重新發(fā)送預提交確認消息或預提交失敗消息。若由于主用交易中間件協(xié)調(diào)設備31和數(shù)據(jù)庫服務器32之間的傳輸網(wǎng)絡的問題, 數(shù)據(jù)庫服務器32在規(guī)定時間長度內(nèi)未接收到主用交易中間件協(xié)調(diào)設備31發(fā)送的正式提交指示消息或回滾指示消息,則數(shù)據(jù)庫服務器32和備用交易中間件協(xié)調(diào)設備33之間需要基于不同的傳輸網(wǎng)絡傳輸消息,因此數(shù)據(jù)庫服務器32通過第一傳輸網(wǎng)絡接收主用交易中間件協(xié)調(diào)設備31發(fā)送的預提交指示消息,以及向主用交易中間件協(xié)調(diào)設備31發(fā)送預提交確認消息或預提交失敗消息,數(shù)據(jù)庫服務器32通過第二傳輸網(wǎng)絡向備用交易中間件協(xié)調(diào)設備33發(fā)送事務詢問消息,以及接收備用交易中間件協(xié)調(diào)設備33發(fā)送的正式提交指示消息或回滾指示消息。此外,若由于網(wǎng)絡信號質(zhì)量較低、主用交易中間件協(xié)調(diào)設備31業(yè)務繁忙或數(shù)據(jù)庫服務器32業(yè)務繁忙等原因,主用交易中間件協(xié)調(diào)設備31雖然向數(shù)據(jù)庫服務器32發(fā)送了預提交指示消息、正式提交指示消息或回滾指示消息,但是數(shù)據(jù)庫服務器32并未接收到,因此數(shù)據(jù)庫服務器32不向主用交易中間件協(xié)調(diào)設備31發(fā)送預提交確認消息、預提交失敗消息、正式提交完成消息或回滾完成消息,主用交易中間件協(xié)調(diào)設備31會一直等待數(shù)據(jù)庫服務器32的消息,因此耗費了主用交易中間件協(xié)調(diào)設備31較多的處理資源,降低了主用交易中間件協(xié)調(diào)設備31的處理效率。針對該問題,本發(fā)明實施例還提出,主用交易中間件協(xié)調(diào)設備31監(jiān)控數(shù)據(jù)庫服務器32是否按時反饋了預提交確認消息、預提交失敗消息、正式提交完成消息或回滾完成消息,若沒有按時反饋,則認為數(shù)據(jù)庫服務器32可能沒有接收到預提交指示消息、正式提交指示消息或回滾指示消息,此時主用交易中間件協(xié)調(diào)設備31可以重新向數(shù)據(jù)庫服務器32發(fā)送預提交指示消息、正式提交指示消息或回滾指示消息,從而有效地節(jié)省了主用交易中間件協(xié)調(diào)設備31的處理資源,提高了主用交易中間件協(xié)調(diào)設備31的處理效率。具體為主用交易中間件協(xié)調(diào)設備31若在第二規(guī)定時間長度內(nèi)未接收到數(shù)據(jù)庫服務器32 發(fā)送的預提交確認消息或預提交失敗消息,則重新向數(shù)據(jù)庫服務器發(fā)送預提交指示消息; 主用交易中間件協(xié)調(diào)設備31在接收到數(shù)據(jù)庫服務器32發(fā)送的預提交確認消息或預提交失敗消息后,向數(shù)據(jù)庫服務器32發(fā)送正式提交指示消息或回滾指示消息,若在第三規(guī)定時間長度內(nèi)未接收到數(shù)據(jù)庫服務器32發(fā)送的正式提交完成消息或回滾完成消息,則重新向數(shù)據(jù)庫服務器32發(fā)送正式提交指示消息或回滾指示消息。本發(fā)明實施例中,第一規(guī)定時間長度、第二規(guī)定時間長度以及第三規(guī)定時間長度可以根據(jù)具體情況進行設置。此外,主用交易中間件協(xié)調(diào)設備31和數(shù)據(jù)庫服務器32可以但不限于通過設置定時器的方式來監(jiān)控是否在規(guī)定時間長度內(nèi)接收到消息。
基于圖3所示的事務提交系統(tǒng),本發(fā)明實施例提出了一種事務提交方法,如圖4所示,其具體處理過程如下步驟41,在接收到應用程序針對全局事務的提交指示后,主用交易中間件協(xié)調(diào)設備向參與該全局事務的各數(shù)據(jù)庫服務器發(fā)送預提交指示消息,以確認是否所有數(shù)據(jù)庫服務器均能夠提交各自的分支事務;步驟42,數(shù)據(jù)庫服務器向主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;數(shù)據(jù)庫服務器在接收到預提交指示消息后,檢查本地準備情況,申請?zhí)峤环种聞账璧谋镜馗黝愘Y源,如事務入口、事務空間等,如資源滿足,則向主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息,若資源不滿足,則先進行重試,若還是不滿足,則向主用交易中間件協(xié)調(diào)設備發(fā)送預提交失敗消息。數(shù)據(jù)庫服務器在發(fā)送預提交確認消息或預提交失敗消息后,可以啟動定時器進行計時,等待主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息。步驟43,若在第一規(guī)定時間長度內(nèi)未接收到主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,則向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息;該事務詢問消息中包含該數(shù)據(jù)庫服務器的服務器標識信息。步驟44,備用交易中間件協(xié)調(diào)設備在接收到事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息;主用交易中間件協(xié)調(diào)設備將針對各數(shù)據(jù)庫服務器的操作記錄信息記錄在事務日志文件中,將事務日志文件存儲在預設的存儲空間,備用交易中間件協(xié)調(diào)設備能夠共享該存儲空間中存儲的事務日志文件,即能夠讀取主用交易中間件協(xié)調(diào)設備存儲的操作記錄信肩、ο步驟45,備用交易中間件協(xié)調(diào)設備根據(jù)獲得的操作記錄信息,確定出主用交易中間件協(xié)調(diào)設備發(fā)送給數(shù)據(jù)庫服務器的正式提交指示消息或回滾指示消息;主用中間件存儲的操作記錄信息至少記錄了主用交易中間件協(xié)調(diào)設備向數(shù)據(jù)庫服務器發(fā)送的各指示消息(例如預提交指示消息、正式提交指示消息或回滾指示消息),還可以記錄發(fā)送各指示消息的時間點信息,當然,該操作記錄信息還可以記錄數(shù)據(jù)庫服務器發(fā)送的各消息(例如預提交確認消息、預提交失敗消息、正式提交完成消息或回滾完成消息)以及主用交易中間件協(xié)調(diào)設備接收到各消息的時間點信息。備用交易中間件協(xié)調(diào)設備能夠共享該存儲空間中存儲的信息,即能夠讀取主用交易中間件協(xié)調(diào)設備存儲的操作記錄信息,那么備用交易中間件協(xié)調(diào)設備就能夠確定出主用交易中間件協(xié)調(diào)設備向數(shù)據(jù)庫服務器發(fā)送的正式提交指示消息或回滾指示消息。步驟46,備用交易中間件協(xié)調(diào)設備將確定出的正式提交指示消息或回滾指示消息發(fā)送給該數(shù)據(jù)庫服務器;備用交易中間件協(xié)調(diào)設備根據(jù)該數(shù)據(jù)庫服務器的服務器標識信息,將確定出的正式提交指示消息或回滾指示消息發(fā)送給該數(shù)據(jù)庫服務器。若備用交易中間件協(xié)調(diào)設備在主用交易中間件協(xié)調(diào)設備的操作記錄信息中并未確定出正式提交指示消息或回滾指示消息,即主用交易中間件協(xié)調(diào)設備未向數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息,則認為主用交易中間件協(xié)調(diào)設備未接收到數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息,此時備用交易中間件協(xié)調(diào)設備向數(shù)據(jù)庫服務器發(fā)送重試消息,指示數(shù)據(jù)庫服務器向主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息。步驟47,數(shù)據(jù)庫服務器根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。為了進一步提高數(shù)據(jù)庫服務器的處理效率,本發(fā)明實施例提出數(shù)據(jù)庫服務器在接收到備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息之前,還進一步重新向主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息,若接收到主用交易中間件協(xié)調(diào)設備發(fā)送的預提交確認消息或預提交失敗消息,則根據(jù)最先接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。其中數(shù)據(jù)庫服務器可以先向主用交易中間件協(xié)調(diào)設備重新發(fā)送預提交確認消息或預提交失敗消息,然后再向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息,也可以先向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息, 再向主用交易中間件協(xié)調(diào)設備重新發(fā)送預提交確認消息或預提交失敗消息,還可以同時向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息,以及向主用交易中間件協(xié)調(diào)設備重新發(fā)送預提交確認消息或預提交失敗消息。此外,為了進一步節(jié)省主用交易中間件協(xié)調(diào)設備的處理資源,提高主用交易中間件協(xié)調(diào)設備的處理效率,本發(fā)明實施例提出,主用交易中間件協(xié)調(diào)設備若在第二規(guī)定時間長度內(nèi)未接收到數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息,則重新向數(shù)據(jù)庫服務器發(fā)送預提交指示消息;主用交易中間件協(xié)調(diào)設備在接收到數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息后,向數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息,若在第三規(guī)定時間長度內(nèi)未接收到數(shù)據(jù)庫服務器發(fā)送的正式提交完成消息或回滾完成消息,則重新向數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息。本發(fā)明實施例中,數(shù)據(jù)庫服務器可以但不限于通過第一傳輸網(wǎng)絡接收主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息,以及向所述主用交易中間件協(xié)調(diào)設備發(fā)送的預提交確認消息或預提交失敗消息;數(shù)據(jù)庫服務器可以但不限于通過第二傳輸網(wǎng)絡向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息,以及接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息。由上述處理過程可知,本發(fā)明實施例技術方案中,數(shù)據(jù)庫服務器接收到主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息后,向主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息,若在規(guī)定時間長度內(nèi)未接收到主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,則向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息,接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,其中正式提交指示消息或回滾指示消息為備用交易中間件協(xié)調(diào)設備在接收到事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息確定出的,數(shù)據(jù)庫服務器根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾,由上可見,若主用交易中間件協(xié)調(diào)設備向數(shù)據(jù)庫服務器發(fā)送了正式提交指示消息或回滾指示消息,而由于網(wǎng)絡信號質(zhì)量較低、主用交易中間件協(xié)調(diào)設備業(yè)務繁忙或數(shù)據(jù)庫服務器業(yè)務繁忙等原因,數(shù)據(jù)庫服務器并未接收到,則此時數(shù)據(jù)庫服務器不再一直等待,而是在到達規(guī)定時間長度后向備用交易中間件協(xié)調(diào)設備詢問,備用交易中間件協(xié)調(diào)設備查詢主用交易中間件協(xié)調(diào)設備的操作記錄,根據(jù)操作記錄確定主用交易中間件協(xié)調(diào)設備向該數(shù)據(jù)庫服務器發(fā)送的是正式提交指示消息還是回滾指示消息,然后將確定出的指示消息發(fā)送給數(shù)據(jù)庫服務器,數(shù)據(jù)庫服務器進一步根據(jù)接收到的指示消息進行事務的正式提交或回滾,從而釋放了事務在數(shù)據(jù)庫服務器中所占用的資源,節(jié)省了數(shù)據(jù)庫服務器較多的處理資源,使得數(shù)據(jù)庫服務器能夠為其他事務分配足夠的處理資源,避免了事務在數(shù)據(jù)庫服務器中發(fā)生阻塞,有效地提高了數(shù)據(jù)庫服務器的處理效率。下面給出更為詳細的實施方式。如圖5所示,為本發(fā)明實施例中事務提交方法具體實現(xiàn)流程圖,其具體處理過程如下步驟51,主用交易中間件協(xié)調(diào)設備向各數(shù)據(jù)庫服務器發(fā)送預提交指示消息,該預提交指示消息中攜帶有需要提交的全局事務的事務標識信息;步驟52,數(shù)據(jù)庫服務器判斷是否能夠提交全局事務的分支事務,若判斷結(jié)果為是, 則轉(zhuǎn)至步驟53,若判斷結(jié)果為否,則轉(zhuǎn)至步驟M ;步驟53,向主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息;步驟54,向主用交易中間件協(xié)調(diào)設備發(fā)送預提交失敗消息;步驟55,主用交易中間件協(xié)調(diào)設備判斷是否在第一規(guī)定時間長度內(nèi)接收到數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息,若判斷結(jié)果為是,則轉(zhuǎn)至步驟57,若步驟為否,則轉(zhuǎn)至步驟56;步驟56,主用交易中間件協(xié)調(diào)設備重新向該數(shù)據(jù)庫服務器發(fā)送預提交指示消息;步驟57,主用交易中間件協(xié)調(diào)設備判斷是否所有數(shù)據(jù)庫服務器均發(fā)送了預提交確認消息,若判斷結(jié)果為是,則轉(zhuǎn)至步驟58,若判斷結(jié)果為否,則轉(zhuǎn)至步驟59 ;步驟58,向所有數(shù)據(jù)庫服務器發(fā)送正式提交指示消息;步驟59,向所有數(shù)據(jù)庫服務器發(fā)送回滾指示消息;步驟510,數(shù)據(jù)庫服務器判斷是否在第二規(guī)定時間段度內(nèi)接收到主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,若判斷結(jié)果為否,則轉(zhuǎn)至步驟511,若步驟為是,則轉(zhuǎn)至步驟514;步驟511,數(shù)據(jù)庫服務器向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息;步驟512,備用交易中間件協(xié)調(diào)設備在主用交易中間件協(xié)調(diào)設備存儲的操作記錄信息中查找主用交易中間件協(xié)調(diào)設備發(fā)送給數(shù)據(jù)庫服務器的指示消息;步驟513,備用交易中間件協(xié)調(diào)設備將查找到的正式提交指示消息或回滾指示消息發(fā)送給數(shù)據(jù)庫服務器;步驟514,若數(shù)據(jù)庫服務器接收到正式提交指示消息,則進行分支事務的正式提 、-
父;步驟515,數(shù)據(jù)庫服務器釋放該分支事務所占用的資源;步驟516,數(shù)據(jù)庫服務器向主用交易中間件協(xié)調(diào)設備發(fā)送正式提交完成消息;步驟517,若數(shù)據(jù)庫服務器接收到回滾指示消息,則進行分支事務的回滾;步驟518,數(shù)據(jù)庫服務器釋放該分支事務所占用的資源;步驟519,數(shù)據(jù)庫服務器向主用交易中間件協(xié)調(diào)設備發(fā)送回滾完成消息;步驟520,主用交易中間件協(xié)調(diào)設備判斷是否在第三規(guī)定時間長度內(nèi)接收到數(shù)據(jù)庫服務器發(fā)送的正式提交完成消息或回滾完成消息,若判斷結(jié)果為是,則轉(zhuǎn)至步驟521,若判斷結(jié)果為否,則轉(zhuǎn)至步驟步驟521,主用交易中間件協(xié)調(diào)設備重新向數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息;步驟522,主用交易中間件協(xié)調(diào)設備接收到所有數(shù)據(jù)庫服務器發(fā)送的正式提交完成消息或回滾完成消息;步驟523,完成全局事務的提交。相應的,本發(fā)明實施例還提出了一種事務提交裝置,其結(jié)構如圖6所示,包括第一接收單元61、第一發(fā)送單元62、判斷單元63,第二發(fā)送單元64、第二接收單元65和提交回滾單元66,其中第一接收單元61,用于接收主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息;第一發(fā)送單元62,用于向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;判斷單元63,用于判斷是否在規(guī)定時間長度內(nèi)接收到所述主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息;第二發(fā)送單元64,用于在判斷單元63的判斷結(jié)果為否時,向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息;第二接收單元65,用于接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,所述正式提交指示消息或回滾指示消息為備用交易中間件協(xié)調(diào)設備在接收到事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息確定出的;提交回滾單元66,用于根據(jù)第二接收單元65接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。較佳地,所述事務提交裝置還包括第三發(fā)送單元和第三接收單元,其中第三發(fā)送單元,用于在第二接收單元65接收到備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息之前,重新向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;第三接收單元,用于接收所述主用交易中間件協(xié)調(diào)設備發(fā)送的預提交確認消息或預提交失敗消息;提交回滾單元66根據(jù)最先接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。本發(fā)明實施例還提供一種數(shù)據(jù)庫服務器,至少包括上述事務提交裝置。針對上述備用交易中間件協(xié)調(diào)設備,本發(fā)明實施例提出一種交易中間件協(xié)調(diào)設備,如圖7所示,包括接收單元71、獲得單元72、確定單元73和發(fā)送單元74,其中接收單元71,用于接收數(shù)據(jù)庫服務器發(fā)送的事務詢問消息; 獲得單元72,用于獲得對所述數(shù)據(jù)庫服務器進行事務提交管理的主用交易中間件協(xié)調(diào)設備的操作記錄信息; 確定單元73,用于根據(jù)獲得單元72獲得的操作記錄信息,確定所述主用交易中間件協(xié)調(diào)設備向所述數(shù)據(jù)庫服務器發(fā)送的正式提交指示消息或回滾指示消息;
發(fā)送單元74,用于將確定單元73確定出的正式提交指示消息或回滾指示消息發(fā)送給所述數(shù)據(jù)庫服務器。針對上述主用交易中間件協(xié)調(diào)設備,本發(fā)明實施例提出一種交易中間件協(xié)調(diào)設備,如圖8所示,包括第一發(fā)送單元81、第一判斷單元82和第二發(fā)送單元83,其中第一發(fā)送單元81,用于向數(shù)據(jù)庫服務器發(fā)送預提交指示消息;第一判斷單元82,用于判斷是否在第一規(guī)定時間長度內(nèi)接收到所述數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息;第二發(fā)送單元83,用于在第一判斷單元82的判斷結(jié)果為否時,重新向所述數(shù)據(jù)庫服務器發(fā)送預提交指示消息。較佳地,所述交易中間件協(xié)調(diào)設備還包括接收單元、第三發(fā)送單元、第二判斷單元和第四發(fā)送單元,其中接收單元,用于接收所述數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息;第三發(fā)送單元,用于向所述數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息;第二判斷單元,用于判斷是否在第二規(guī)定時間長度內(nèi)接收到所述數(shù)據(jù)庫服務器發(fā)送的正式提交完成消息或回滾完成消息;第四發(fā)送單元,用于在第二判斷單元的判斷結(jié)果為否時,重新向所述數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息。顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權利要求
1.一種事務提交系統(tǒng),包括主用交易中間件協(xié)調(diào)設備,其特征在于,還包括數(shù)據(jù)庫服務器和備用交易中間件協(xié)調(diào)設備,其中所述數(shù)據(jù)庫服務器,用于接收主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息,向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息,若在第一規(guī)定時間長度內(nèi)未接收到所述主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,則向所述備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息,接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,并根據(jù)接收到的正式提交指示消息或回滾指示消息, 進行事務的正式提交或回滾;所述備用交易中間件協(xié)調(diào)設備,用于在接收到所述事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息,確定出主用交易中間件協(xié)調(diào)設備向所述數(shù)據(jù)庫服務器發(fā)送的正式提交指示消息或回滾指示消息后,發(fā)送給所述數(shù)據(jù)庫服務器。
2.如權利要求1所述的事務提交系統(tǒng),其特征在于,所述主用交易中間件協(xié)調(diào)設備,用于向所述數(shù)據(jù)庫服務器發(fā)送預提交指示消息,若在第二規(guī)定時間長度內(nèi)未接收到所述數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息,則重新向所述數(shù)據(jù)庫服務器發(fā)送預提交指示消息。
3.如權利要求2所述的事務提交系統(tǒng),其特征在于,所述主用交易中間件協(xié)調(diào)設備,還用于在接收到所述數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息后,向所述數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息,若在第三規(guī)定時間長度內(nèi)未接收到所述數(shù)據(jù)庫服務器發(fā)送的正式提交完成消息或回滾完成消息,則重新向所述數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾完成消息。
4.一種事務提交方法,其特征在于,包括接收到主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息后,向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;若在規(guī)定時間長度內(nèi)未接收到所述主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,則向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息;以及接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,所述正式提交指示消息或回滾指示消息為備用交易中間件協(xié)調(diào)設備在接收到事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息確定出的;根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。
5.如權利要求4所述的事務提交方法,其特征在于,接收到備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息之前,還包括重新向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;接收所述主用交易中間件協(xié)調(diào)設備發(fā)送的預提交確認消息或預提交失敗消息;根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾,具體包括根據(jù)最先接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。
6.如權利要求4所述的事務提交方法,其特征在于,所述數(shù)據(jù)庫服務器通過第一傳輸網(wǎng)絡接收主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息,以及向所述主用交易中間件協(xié)調(diào)設備發(fā)送的預提交確認消息或預提交失敗消息;所述數(shù)據(jù)庫服務器通過第二傳輸網(wǎng)絡向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息, 以及接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息。
7.一種事務提交裝置,其特征在于,包括第一接收單元,用于接收主用交易中間件協(xié)調(diào)設備發(fā)送的預提交指示消息;第一發(fā)送單元,用于向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;判斷單元,用于判斷是否在規(guī)定時間長度內(nèi)接收到所述主用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息;第二發(fā)送單元,用于在判斷單元的判斷結(jié)果為否時,向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息;第二接收單元,用于接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,所述正式提交指示消息或回滾指示消息為備用交易中間件協(xié)調(diào)設備在接收到事務詢問消息后,獲得主用交易中間件協(xié)調(diào)設備的操作記錄信息,并根據(jù)獲得的操作記錄信息確定出的;提交回滾單元,用于根據(jù)第二接收單元接收到的正式提交指示消息或回滾指示消息, 進行事務的正式提交或回滾。
8.如權利要求7所述的事務提交裝置,其特征在于,還包括第三發(fā)送單元,用于在第二接收單元接收到備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息之前,重新向所述主用交易中間件協(xié)調(diào)設備發(fā)送預提交確認消息或預提交失敗消息;第三接收單元,用于接收所述主用交易中間件協(xié)調(diào)設備發(fā)送的預提交確認消息或預提交失敗消息;提交回滾單元根據(jù)最先接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。
9.一種數(shù)據(jù)庫服務器,其特征在于,包括權利要求7 8任一所述的事務提交裝置。
10.一種交易中間件協(xié)調(diào)設備,其特征在于,包括接收單元,用于接收數(shù)據(jù)庫服務器發(fā)送的事務詢問消息;獲得單元,用于獲得對所述數(shù)據(jù)庫服務器進行事務提交管理的主用交易中間件協(xié)調(diào)設備的操作記錄信息;確定單元,用于根據(jù)獲得單元獲得的操作記錄信息,確定所述主用交易中間件協(xié)調(diào)設備向所述數(shù)據(jù)庫服務器發(fā)送的正式提交指示消息或回滾指示消息;發(fā)送單元,用于將確定單元確定出的正式提交指示消息或回滾指示消息發(fā)送給所述數(shù)據(jù)庫服務器。
11.一種交易中間件協(xié)調(diào)設備,其特征在于,包括第一發(fā)送單元,用于向數(shù)據(jù)庫服務器發(fā)送預提交指示消息;第一判斷單元,用于判斷是否在第一規(guī)定時間長度內(nèi)接收到所述數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息;第二發(fā)送單元,用于在第一判斷單元的判斷結(jié)果為否時,重新向所述數(shù)據(jù)庫服務器發(fā)送預提交指示消息。
12.如權利要求11所述的交易中間件協(xié)調(diào)設備,其特征在于,還包括 接收單元,用于接收所述數(shù)據(jù)庫服務器發(fā)送的預提交確認消息或預提交失敗消息; 第三發(fā)送單元,用于向所述數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息; 第二判斷單元,用于判斷是否在第二規(guī)定時間長度內(nèi)接收到所述數(shù)據(jù)庫服務器發(fā)送的正式提交完成消息或回滾完成消息;第四發(fā)送單元,用于在第二判斷單元的判斷結(jié)果為否時,重新向所述數(shù)據(jù)庫服務器發(fā)送正式提交指示消息或回滾指示消息。
全文摘要
本發(fā)明公開了一種事務提交系統(tǒng)、方法及設備,該方法包括步驟數(shù)據(jù)庫服務器若在規(guī)定時間長度內(nèi)未接收到正式提交指示消息或回滾指示消息,則向備用交易中間件協(xié)調(diào)設備發(fā)送事務詢問消息;接收備用交易中間件協(xié)調(diào)設備發(fā)送的正式提交指示消息或回滾指示消息,所述正式提交指示消息或回滾指示消息為備用交易中間件協(xié)調(diào)設備根據(jù)主用交易中間件協(xié)調(diào)設備的操作記錄信息確定出的;根據(jù)接收到的正式提交指示消息或回滾指示消息,進行事務的正式提交或回滾。采用本發(fā)明技術方案,解決了現(xiàn)有技術中存在的耗費了數(shù)據(jù)庫服務器較多的處理資源,數(shù)據(jù)庫服務器的處理效率較低的問題。
文檔編號G06F17/30GK102571850SQ201010606600
公開日2012年7月11日 申請日期2010年12月24日 優(yōu)先權日2010年12月24日
發(fā)明者朱祥磊 申請人:中國移動通信集團山東有限公司