專利名稱:對(duì)使用會(huì)話親緣性的分布式環(huán)境中的故障恢復(fù)進(jìn)行處理的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及改進(jìn)的數(shù)據(jù)處理系統(tǒng)。更具體地,本發(fā)明涉及用于對(duì)利用會(huì)話 親緣性(affinity)的分布式網(wǎng)絡(luò)環(huán)境中的服務(wù)器故障恢復(fù)進(jìn)行處理的計(jì)算機(jī)實(shí)現(xiàn)方法、 系統(tǒng)和計(jì)算機(jī)可用程序代碼。
背景技術(shù):
當(dāng)今,大部分計(jì)算機(jī)連接到某種類型的網(wǎng)絡(luò)。網(wǎng)絡(luò)允許計(jì)算機(jī)與其他計(jì)算機(jī)系統(tǒng) 共享信息。因特網(wǎng)是計(jì)算機(jī)網(wǎng)絡(luò)的一個(gè)示例。因特網(wǎng)是借助于網(wǎng)關(guān)連結(jié)在一起的網(wǎng)絡(luò)和計(jì) 算機(jī)的全球網(wǎng)絡(luò),其中網(wǎng)關(guān)對(duì)數(shù)據(jù)傳送和將消息從發(fā)送網(wǎng)絡(luò)的協(xié)議向接收網(wǎng)絡(luò)使用的協(xié)議 轉(zhuǎn)換進(jìn)行處理。在因特網(wǎng)上,任何計(jì)算機(jī)都可以與任何其他計(jì)算機(jī)通信,其中信息通過(guò)各種 語(yǔ)言(也稱為協(xié)議)在因特網(wǎng)上傳播。典型地,因特網(wǎng)使用稱為傳輸控制協(xié)議/網(wǎng)際協(xié)議 (TCP/IP)的協(xié)議集。大量新興的因特網(wǎng)應(yīng)用需要在不同的組織界限、異種平臺(tái)以及發(fā)布者和訂戶的大 量動(dòng)態(tài)人群之間分發(fā)信息。發(fā)布-訂閱(發(fā)-訂)網(wǎng)絡(luò)服務(wù)是這樣的通信基礎(chǔ)架構(gòu),其支 持在潛在不受限數(shù)量的發(fā)布者和訂戶之間分發(fā)信息。發(fā)-訂系統(tǒng)通常實(shí)現(xiàn)為在端到端覆蓋 網(wǎng)絡(luò)上部進(jìn)行通信的空間上相異節(jié)點(diǎn)的集合。在這種環(huán)境中,發(fā)布者以事件形式發(fā)布信息,訂戶具有通過(guò)向發(fā)-訂網(wǎng)絡(luò)發(fā)送訂 閱過(guò)濾器(filter)而表達(dá)其對(duì)事件或事件的模式感興趣的能力。發(fā)-訂網(wǎng)絡(luò)使用基于內(nèi) 容的路由機(jī)制來(lái)將每個(gè)發(fā)布與所有活動(dòng)訂閱進(jìn)行匹配,并且當(dāng)且僅當(dāng)事件與訂戶登記的興 趣匹配時(shí),才向這些訂戶通知該事件。會(huì)聚服務(wù)是跨過(guò)多個(gè)網(wǎng)絡(luò)協(xié)議和協(xié)議會(huì)話上的通信來(lái)提供較高層功能的應(yīng)用。在 超文本傳輸協(xié)議(HTTP)和會(huì)話發(fā)起協(xié)議(SIP)的情況下,會(huì)聚服務(wù)將來(lái)自HTTP協(xié)議和SIP 協(xié)議的會(huì)話信息連結(jié)在一起,從而允許一個(gè)協(xié)議上的交互影響另一協(xié)議上的通信,并受到 該協(xié)議的約束。會(huì)聚服務(wù)可以跨過(guò)來(lái)自這些協(xié)議中每一個(gè)協(xié)議的多個(gè)協(xié)議會(huì)話。為了對(duì)代碼和高可用性服務(wù)的構(gòu)造進(jìn)行簡(jiǎn)化,稱為會(huì)話親緣性的機(jī)制與會(huì)聚服務(wù)結(jié)合使用。會(huì)話親緣性是集群環(huán)境中用于將會(huì)話中的請(qǐng)求與服務(wù)器集群中的特定服務(wù)器相 關(guān)聯(lián)的機(jī)制。此關(guān)聯(lián)是經(jīng)由將會(huì)話向管理服務(wù)器映射的路由機(jī)制完成的。在使用會(huì)話親緣 性和會(huì)聚服務(wù)時(shí),會(huì)聚會(huì)話數(shù)據(jù)可以在會(huì)話的生命期中在單個(gè)應(yīng)用服務(wù)器實(shí)例中存續(xù),從 而不需要用于在處理與會(huì)聚會(huì)話有關(guān)的請(qǐng)求時(shí)執(zhí)行集群間通信的應(yīng)用代碼。然而,很多會(huì)聚應(yīng)用還需要訪問(wèn)和管理跨越多個(gè)會(huì)聚會(huì)話的公共資源或數(shù)據(jù)結(jié) 構(gòu)。即使利用會(huì)話親緣性,這些會(huì)聚會(huì)話也可能被指派到集群中的不同服務(wù)器實(shí)例。其結(jié) 果是,需要這樣的方法,其向所有會(huì)聚會(huì)話通知與這些會(huì)話有關(guān)的公共信息,而不論感興趣 的會(huì)話在集群中的位置如何。例如,考慮包括服務(wù)器A、B和C的三服務(wù)器集群環(huán)境。針對(duì) 與服務(wù)器A和服務(wù)器C上的應(yīng)用資源有關(guān)的通知建立訂閱。一個(gè)發(fā)布請(qǐng)求出現(xiàn),并且其針 對(duì)服務(wù)器B。服務(wù)器B不知道集群中的哪個(gè)服務(wù)器包含感興趣的訂閱會(huì)話。服務(wù)器B必須能夠可靠地廣播該訂閱數(shù)據(jù)。另外,當(dāng)服務(wù)器B發(fā)生故障時(shí),不知道服務(wù)器B管理的會(huì)話將在該集群中的何處被再激活。因此,有益的是具有改進(jìn)的計(jì)算機(jī)實(shí)現(xiàn)方法、系統(tǒng)和計(jì)算機(jī)可用程序代碼,其用于 對(duì)使用會(huì)話親緣性的發(fā)_訂分布式網(wǎng)絡(luò)環(huán)境中的服務(wù)器故障恢復(fù)進(jìn)行管理。
發(fā)明內(nèi)容
示例性實(shí)施方式提供了一種計(jì)算機(jī)實(shí)現(xiàn)的方法、系統(tǒng)和計(jì)算機(jī)可用程序代碼,用 于對(duì)服務(wù)器集群中的故障恢復(fù)進(jìn)行管理。響應(yīng)于在分布式網(wǎng)絡(luò)中的服務(wù)器集群中檢測(cè)到故 障服務(wù)器,停止故障恢復(fù)服務(wù)器的訂閱消息處理。打開(kāi)故障服務(wù)器的訂閱隊(duì)列。向針對(duì)特 定消息收發(fā)話題的所有訂戶發(fā)布標(biāo)記消息。該標(biāo)記消息包括現(xiàn)在對(duì)故障服務(wù)器的訂閱隊(duì)列 進(jìn)行管理的故障恢復(fù)服務(wù)器的標(biāo)識(shí)。處理該故障服務(wù)器的訂閱隊(duì)列中的消息。確定該故障 服務(wù)器的訂閱隊(duì)列中的消息是否是標(biāo)記消息。響應(yīng)于確定該故障服務(wù)器的訂閱隊(duì)列中的消 息是標(biāo)記消息,關(guān)閉該故障服務(wù)器的訂閱隊(duì)列。繼而,該故障恢復(fù)服務(wù)器重新開(kāi)始其原始訂 閱隊(duì)列的處理。優(yōu)選地,在處理來(lái)自原始訂閱隊(duì)列的未讀消息的同時(shí),查找標(biāo)記消息。一旦在原始 訂閱隊(duì)列中找到標(biāo)記消息,便優(yōu)選地重新開(kāi)始正常操作。
現(xiàn)在,僅通過(guò)示例的方式并參考附圖來(lái)描述本發(fā)明的優(yōu)選實(shí)施方式。圖1是其中可以實(shí)現(xiàn)示范性實(shí)施方式的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)的圖形表示;圖2是其中可以實(shí)現(xiàn)示范性實(shí)施方式的數(shù)據(jù)處理系統(tǒng)的框圖;圖3是示出了根據(jù)示范性實(shí)施方式的、用于正常服務(wù)器操作的示例性過(guò)程的流程 圖;圖4是示出了根據(jù)示范性實(shí)施方式的、用于故障恢復(fù)服務(wù)器操作的示例性過(guò)程的 流程圖。
具體實(shí)施例方式現(xiàn)在參考附圖,特別是參考圖1-圖2,其提供了其中可以實(shí)現(xiàn)示范性實(shí)施方式的 數(shù)據(jù)處理環(huán)境的示例性圖示。應(yīng)當(dāng)理解,圖1-圖2僅是示例性的,而不是用來(lái)聲明或者暗示 針對(duì)其中可以實(shí)現(xiàn)不同實(shí)施方式的環(huán)境的任何限制??梢詫?duì)所描繪的環(huán)境做出很多改變。圖1描繪了其中可以實(shí)現(xiàn)示范性實(shí)施方式的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的圖形表示。網(wǎng) 絡(luò)數(shù)據(jù)處理系統(tǒng)100是其中可以實(shí)現(xiàn)示范性實(shí)施方式的計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng) 100包含網(wǎng)絡(luò)102,其是用于在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各種設(shè)備和計(jì)算機(jī)之 間提供通信鏈路的媒介。網(wǎng)絡(luò)102可以包括連接,諸如有線、無(wú)線通信鏈路或者光纖電纜。在所描繪的示例中,服務(wù)器104和服務(wù)器106以及存儲(chǔ)單元108 —起連接到網(wǎng)絡(luò) 102。另外,客戶端110、112和114還連接到網(wǎng)絡(luò)102。然而,應(yīng)當(dāng)注意,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng) 100可以包括未示出的附加服務(wù)器、客戶端和其他設(shè)備??蛻舳?10、112和114是針對(duì)服務(wù) 器104和/或服務(wù)器106的客戶端。而且,客戶端110、112和114例如可以是個(gè)人計(jì)算機(jī) 或網(wǎng)絡(luò)計(jì)算機(jī)。
在所描繪的示例中,服務(wù)器104和服務(wù)器106是集群服務(wù)器。另外服務(wù)器104和服務(wù)器106向作為訂戶的客戶端110、112和114提供發(fā)-訂網(wǎng)絡(luò)服務(wù)。該發(fā)-訂網(wǎng)絡(luò)支持 向特定消息話題發(fā)布消息。話題代表多個(gè)訂戶感興趣的主題。典型地,消息在發(fā)布過(guò)程期 間被指派給話題,并繼而由已經(jīng)訂閱了該特定話題的所有客戶接收。零個(gè)或多個(gè)訂戶客戶 端可以登記針對(duì)就特定消息話題接收消息的興趣。訂閱被配置,使得該訂閱是持久不變的。訂閱指示客戶接收某個(gè)事件類別的興趣。 消息收發(fā)服務(wù)環(huán)境(諸如,例如,Java 消息收發(fā)服務(wù)(JMS))內(nèi)的訂閱起到了以事件被發(fā) 布的順序來(lái)接收針對(duì)話題的事件的“虛擬隊(duì)列”的作用。持久的意思是在客戶端停止讀取 來(lái)自訂閱的消息時(shí),未讀消息保留在訂閱隊(duì)列中該客戶端退出的位置。此外,該網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是利用會(huì)話親緣性的分布式網(wǎng)絡(luò)環(huán)境。會(huì)話親緣 性利用負(fù)載平衡元件來(lái)向同一應(yīng)用服務(wù)器實(shí)例路由作為同一會(huì)聚會(huì)話的部分的請(qǐng)求。為了 解決會(huì)聚會(huì)話,示范性實(shí)施方式利用可以用來(lái)路由請(qǐng)求的會(huì)話信息來(lái)對(duì)該請(qǐng)求進(jìn)行編碼。 此會(huì)話信息編碼可以利用兩種方式完成。一種方式是客戶端應(yīng)用從會(huì)聚應(yīng)用獲取會(huì)話參考 (諸如,例如,cookie)。繼而,該客戶端應(yīng)用在其請(qǐng)求中復(fù)現(xiàn)該cookie。備選地,該客戶端 應(yīng)用對(duì)該請(qǐng)求的統(tǒng)一資源定位符(URI)進(jìn)行編碼,使得該請(qǐng)求指向適當(dāng)?shù)姆?wù)器。在所描繪的示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是具有網(wǎng)絡(luò)102的因特網(wǎng),網(wǎng)絡(luò)102代 表使用TCP/IP協(xié)議集來(lái)彼此通信的全球范圍內(nèi)的網(wǎng)絡(luò)和網(wǎng)關(guān)集合。因特網(wǎng)的核心是主要 節(jié)點(diǎn)或主機(jī)計(jì)算機(jī)之間的高速數(shù)據(jù)通信線路的骨干網(wǎng),其由成千上萬(wàn)的商業(yè)、政府、教育和 對(duì)數(shù)據(jù)和消息進(jìn)行路由的其他計(jì)算機(jī)系統(tǒng)組成。當(dāng)然,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100還可以實(shí)現(xiàn) 為大量不同類型的網(wǎng)絡(luò),諸如,例如,內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。圖1意在作為一 個(gè)示例,而不是對(duì)不同示范性實(shí)施方式的結(jié)構(gòu)性限制。現(xiàn)在參考圖2,其示出了其中可以實(shí) 現(xiàn)示范性實(shí)施方式的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的服務(wù)器104 或客戶端110的計(jì)算機(jī)的示例,針對(duì)示范性實(shí)施方式實(shí)現(xiàn)處理的計(jì)算機(jī)可用代碼或指令可 以位于其中。在所描繪示例中,數(shù)據(jù)處理系統(tǒng)200采用hub (集線器)架構(gòu),其包括接口和存儲(chǔ) 器控制器hub(接口 /MCH)202以及接口和輸入/輸出(I/O)控制器hub(接口 /ICH)204。 處理單元206、主存儲(chǔ)器208以及圖形處理器210耦合到接口 /MCH 202。處理單元206可 以包含一個(gè)或多個(gè)處理器,其甚至可以使用一個(gè)或多個(gè)異構(gòu)處理器系統(tǒng)來(lái)實(shí)現(xiàn)。圖形處理 器210可以通過(guò)例如加速圖形端口(AGP)耦合到接口 /MCH 202。在所描繪的示例中,局域網(wǎng)(LAN)適配器212耦合到接口 /ICH204,而音頻適配器 216、鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲(chǔ)器(ROM) 224、通用串行總線(USB)端 口和其他端口 232、以及PCI/PCIe設(shè)備234通過(guò)總線238耦合到接口 /ICH 204,并且硬盤驅(qū) 動(dòng)(HDD) 226和CD-ROM 230通過(guò)總線240耦合到接口 /ICH 204。PCI/PCIe設(shè)備例如可以包 括用于筆記本計(jì)算機(jī)的以太網(wǎng)適配器、外接卡以及PC卡。PCI使用卡總線控制器,而PCIe 不使用。ROM 224例如可以是快閃二進(jìn)制輸入/輸出系統(tǒng)(BIOS)。HDD 226和⑶-ROM 230 例如可以使用集成設(shè)備電子元件(IDE)或串行高級(jí)技術(shù)附件(SATA)接口。超級(jí)I/0(SI0) 設(shè)備236可以耦合到接口和1/0控制器hub 204。操作系統(tǒng)在處理單元206上運(yùn)行,其協(xié)調(diào)和提供對(duì)圖2中數(shù)據(jù)處理系統(tǒng)200內(nèi) 各種組件的控制。操作系統(tǒng)可以是商業(yè)上可用的操作系統(tǒng),諸如Mierosoft WindowsVista 。Microsoft和Windows Vista是微軟公司在美國(guó)、其他國(guó)家或者說(shuō)在世界范圍內(nèi) 的商標(biāo)。面向?qū)ο蟮木幊滔到y(tǒng),諸如Java 編程系統(tǒng),可以與操作系統(tǒng)一起運(yùn)行,其根據(jù)在 數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的Java 程序或應(yīng)用而提供對(duì)操作系統(tǒng)的調(diào)用。Java 和所有基 于Java 的商標(biāo)是Sim微系統(tǒng)公司在美國(guó)、其他國(guó)家或者說(shuō)在世界范圍內(nèi)的商標(biāo)。用于操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)以及應(yīng)用或程序的指令位于諸如HDD 226的 存儲(chǔ)設(shè)備中,并且可以加載到主存儲(chǔ)器208中以由處理單元206執(zhí)行。示范性實(shí)施方式的 過(guò)程可以由處理單元206使用計(jì)算機(jī)實(shí)現(xiàn)的指令來(lái)執(zhí)行,這些指令可以位于存儲(chǔ)器中,諸 如主存儲(chǔ)器208、只讀存儲(chǔ)器224或位于一個(gè)或多個(gè)外圍設(shè)備中。圖1-圖2中的硬件可以根據(jù)實(shí)現(xiàn)而變化。其他內(nèi)部硬件或外設(shè),諸如閃存、等效 的非易失性存儲(chǔ)器或光盤驅(qū)動(dòng)等等,可以附加于圖1-圖2中示出的硬件或作為其替換而使 用。同樣,示范性實(shí)施方式的過(guò)程可以應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。在某些示范性示例中,數(shù)據(jù)處理系統(tǒng)200可以是個(gè)人數(shù)字助理(PDA),其通常配置 有閃存以提供非易失性存儲(chǔ)器,用于存儲(chǔ)操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)??偩€系統(tǒng) 可以包括一條或多條總線,諸如系統(tǒng)總線、I/O總線和PCI總線。當(dāng)然,總線系統(tǒng)可以使用 任何類型的通信結(jié)構(gòu)或架構(gòu)來(lái)實(shí)現(xiàn),其提供附接至此結(jié)構(gòu)或架構(gòu)上的不同組件或設(shè)備之間 的數(shù)據(jù)傳送。通信單元可以包括用于發(fā)送和接收數(shù)據(jù)的一個(gè)或多個(gè)設(shè)備,諸如調(diào)制解調(diào)器 或網(wǎng)絡(luò)適配器。存儲(chǔ)器例如可以是主存儲(chǔ)器208或諸如在接口/MCH 202中找到的高速緩 存。處理單元可以包括一個(gè)或多個(gè)處理器或CPU。圖1-圖2中所描繪示例以及上述示例的 意圖并不在于暗示架構(gòu)的限制。例如,數(shù)據(jù)處理系統(tǒng)200也可以是平板型計(jì)算機(jī)、膝上型計(jì) 算機(jī),或采用PDA形式之外的電話設(shè)備。示范性實(shí)施方式提供了一種計(jì)算機(jī)實(shí)現(xiàn)的方法、系統(tǒng)和計(jì)算機(jī)可用程序代碼,用 于對(duì)分布式網(wǎng)絡(luò)中服務(wù)器集群中的故障恢復(fù)進(jìn)行管理。響應(yīng)于在服務(wù)器集群中檢測(cè)到故障 服務(wù)器,故障恢復(fù)服務(wù)器停止其訂閱消息收發(fā)隊(duì)列的訂閱消息處理。繼而,故障恢復(fù)服務(wù)器 打開(kāi)該故障服務(wù)器的訂閱隊(duì)列,并向特定消息收發(fā)話題的所有訂戶發(fā)布標(biāo)記消息。該標(biāo)記 消息包括現(xiàn)在正對(duì)該故障服務(wù)器的訂閱隊(duì)列進(jìn)行管理的故障恢復(fù)服務(wù)器的標(biāo)識(shí)。另外,標(biāo) 記消息被未參與該故障恢復(fù)的所有其他服務(wù)器忽略。另外,故障恢復(fù)服務(wù)器處理該故障服務(wù)器的訂閱隊(duì)列內(nèi)的消息。在處理該故障服 務(wù)器的訂閱隊(duì)列中消息的同時(shí),該故障恢復(fù)服務(wù)器確定訂閱隊(duì)列中的消息是否是標(biāo)記消 息。響應(yīng)于在故障服務(wù)器的訂閱隊(duì)列中找到標(biāo)記消息,該故障恢復(fù)服務(wù)器關(guān)閉該故障服務(wù) 器的訂閱隊(duì)列,并重新開(kāi)始其訂閱隊(duì)列中的訂閱消息處理。示范性實(shí)施方式可以實(shí)現(xiàn)在分布式發(fā)-訂網(wǎng)絡(luò)環(huán)境中。每個(gè)應(yīng)用服務(wù)器啟動(dòng)時(shí)生 成在會(huì)話生命期中存續(xù)的唯一訂閱標(biāo)識(shí)。每個(gè)訂閱是持久不變的。無(wú)論何時(shí)在應(yīng)用服務(wù)器 中創(chuàng)建會(huì)話,該應(yīng)用服務(wù)器都將唯一訂閱標(biāo)識(shí)存儲(chǔ)在會(huì)話屬性中,使得該會(huì)話屬性作為會(huì) 話狀態(tài)復(fù)制的一部分被復(fù)制。在出現(xiàn)故障恢復(fù)時(shí),該故障服務(wù)器的會(huì)話在另一服務(wù)器應(yīng)用 上被激活。典型地,在應(yīng)用服務(wù)器環(huán)境(諸如,例如,J2EE應(yīng)用服務(wù)器)中,經(jīng)由生命周期監(jiān) 聽(tīng)器而將此激活信號(hào)通知給故障恢復(fù)服務(wù)器應(yīng)用代碼。然而,應(yīng)當(dāng)注意,除了經(jīng)由生命周期 監(jiān)聽(tīng)器之外,還可以由平臺(tái)利用很多不同方式將此激活通知該應(yīng)用代碼。在激活事件上,故 障恢復(fù)服務(wù)器應(yīng)用查找來(lái)自會(huì)話的故障恢復(fù)訂閱。繼而,故障恢復(fù)服務(wù)器立即向所有訂閱發(fā)布標(biāo)記消息,其以先進(jìn)/先出(FIFO)順序被遞送,并且同樣出現(xiàn)在故障服務(wù)器的訂閱隊(duì) 列中。故障恢復(fù)服務(wù)器繼而停止處理其主要訂閱,并前進(jìn)到從故障恢復(fù)訂閱進(jìn)行恢復(fù), 僅處理與故障服務(wù)器的會(huì)話相關(guān)聯(lián)的消息。在恢復(fù)時(shí),故障恢復(fù)服務(wù)器構(gòu)建其已經(jīng)處理的 消息的映射表。一旦在故障服務(wù)器的訂閱隊(duì)列中命中標(biāo)記消息,則恢復(fù)的第一階段完成。
故障恢復(fù)服務(wù)器應(yīng)用繼而重新開(kāi)始處理主要隊(duì)列,直到其發(fā)現(xiàn)標(biāo)記消息。該標(biāo)記 消息指示該隊(duì)列現(xiàn)在被同步。在遍歷主要隊(duì)列時(shí),故障恢復(fù)服務(wù)器略過(guò)位于該映射表中的 消息,從而其不處理用于已恢復(fù)會(huì)話的任何消息。一旦故障恢復(fù)服務(wù)器找到標(biāo)記消息,該故 障恢復(fù)服務(wù)器便終止故障恢復(fù)訂閱,并重新開(kāi)始正常處理。然而,應(yīng)當(dāng)注意,如果故障服務(wù) 器在故障恢復(fù)服務(wù)器正在進(jìn)行恢復(fù)時(shí)恢復(fù)過(guò)來(lái),則故障恢復(fù)服務(wù)器不會(huì)受影響,因?yàn)楣收?服務(wù)器生成新的唯一訂閱標(biāo)識(shí),從而避免與故障恢復(fù)服務(wù)器的沖突。現(xiàn)在參考圖3,示出了根據(jù)示范性實(shí)施方式的、用于正常服務(wù)器操作的示例性過(guò)程 的流程圖。圖3中示出的過(guò)程可以實(shí)現(xiàn)在服務(wù)器(諸如,例如,圖1中的服務(wù)器104)中。該過(guò)程開(kāi)始于服務(wù)器啟動(dòng)時(shí)(步驟302)。在啟動(dòng)后,服務(wù)器生成在會(huì)話的生命期 中存續(xù)的唯一訂閱標(biāo)識(shí)(步驟304)。服務(wù)器使用唯一訂閱標(biāo)識(shí)來(lái)連接到消息收發(fā)話題,其 用于向訂戶客戶端發(fā)布針對(duì)訂閱數(shù)據(jù)改變的通知。在于步驟304中生成唯一訂閱標(biāo)識(shí)之后,服務(wù)器使用唯一訂閱標(biāo)識(shí)連接至消息收 發(fā)話題(步驟306)。在于步驟306中連接至消息收發(fā)話題之后,服務(wù)器確定這是否是新的 會(huì)話(步驟308)。如果這是新的會(huì)話,即,在步驟308輸出“是”,則服務(wù)器將唯一訂閱標(biāo)識(shí) 作為屬性存儲(chǔ)在會(huì)話對(duì)象中(步驟310)。此后,該過(guò)程前進(jìn)到步驟312。如果這不是新的會(huì)話,即,在步驟308中輸出“否”,則服務(wù)器服務(wù)于這些請(qǐng)求(步 驟312)。服務(wù)器通過(guò)執(zhí)行請(qǐng)求處理來(lái)服務(wù)于請(qǐng)求(步驟314)。另外,服務(wù)器發(fā)布針對(duì)特 定訂閱消息收發(fā)話題的改變(步驟316)。此外,服務(wù)器復(fù)制會(huì)話對(duì)象以用于會(huì)話狀態(tài)復(fù)制 (步驟318)。此后,該過(guò)程返回步驟314,在此,服務(wù)器繼續(xù)服務(wù)請(qǐng)求?,F(xiàn)在參考圖4,示出了根據(jù)示范性實(shí)施方式的、示出用于故障服務(wù)器操作的示例性 過(guò)程。圖4中所示過(guò)程可以實(shí)現(xiàn)在服務(wù)器(諸如,例如,圖1中的服務(wù)器106)中。該過(guò)程開(kāi)始于服務(wù)器檢測(cè)到服務(wù)器集群中另一服務(wù)器(諸如,例如,圖1中的服務(wù) 器104)的故障(步驟402)。在于步驟402中檢測(cè)到另一服務(wù)器的故障之后,服務(wù)器停止處 理自己的訂閱消息(步驟404)。繼而,服務(wù)器打開(kāi)故障服務(wù)器的訂閱隊(duì)列(步驟406)。另 夕卜,服務(wù)器向所有訂戶發(fā)布標(biāo)記消息,其包括用于現(xiàn)在正為故障服務(wù)器的會(huì)話提供服務(wù)的 服務(wù)器的唯一訂閱標(biāo)識(shí)(步驟408)。而且,該標(biāo)記消息在故障恢復(fù)發(fā)生的時(shí)刻以FIFO順序 出現(xiàn)在服務(wù)器的訂閱隊(duì)列和故障服務(wù)器的訂閱隊(duì)列中。該服務(wù)器使用此標(biāo)記消息來(lái)同步兩 個(gè)服務(wù)器的訂閱隊(duì)列,如下所述。此后,服務(wù)器從故障服務(wù)器的訂閱隊(duì)列獲取消息(步驟410)。繼而,服務(wù)器確定該 消息是否是標(biāo)記消息(步驟412)。如果該消息不是標(biāo)記消息,即,步驟412輸出“否”,則服 務(wù)器將該消息記錄為“已讀”(步驟414)。如在步驟414中記錄了該消息之后,服務(wù)器對(duì)有 關(guān)會(huì)話執(zhí)行處理(步驟416)。此后,該處理返回步驟410,在該處,服務(wù)器從故障服務(wù)器的 訂閱隊(duì)列獲取另一消息。現(xiàn)在返回步驟412,如果該消息是標(biāo)記消息,即,在步驟412輸出“是”,則服務(wù)器關(guān)閉故障服務(wù)器的訂閱隊(duì)列(步驟418)。此后,服務(wù)器重新開(kāi)始處理自己的訂閱隊(duì)列(步驟420)。在重新開(kāi)始處理其訂閱隊(duì)列之后,服務(wù)器從其訂閱隊(duì)列獲取消息(步驟422)。繼而, 服務(wù)器確定該消息是否是標(biāo)記消息(步驟424)。如果該消息是標(biāo)記消息,即,在步驟424輸 出“是”,則服務(wù)器重新開(kāi)始正常處理(步驟426)。該過(guò)程隨后終止。如果該消息不是標(biāo)記消息,即,步驟424輸出“否”,則服務(wù)器確定該消息之前是否 已讀(步驟428)。如果該消息已讀,即,步驟428輸出“是”,則該過(guò)程返回步驟422,在該 處,服務(wù)器從其訂閱隊(duì)列獲取另一消息。如果該消息未讀,即,步驟428輸出“否”,則服務(wù)器 對(duì)有關(guān)會(huì)話執(zhí)行處理(步驟430)。此后,該過(guò)程再次返回步驟422。由此,示范性實(shí)施方式提供了一種計(jì)算機(jī)實(shí)現(xiàn)的方法、系統(tǒng)和計(jì)算機(jī)可用程序代 碼,用于對(duì)利用會(huì)話親緣性的發(fā)布-訂閱分布式網(wǎng)絡(luò)環(huán)境中的服務(wù)器故障恢復(fù)進(jìn)行處理。 本發(fā)明可以采用全硬件實(shí)施方式、全軟件實(shí)施方式或者包含硬件元素和軟件元素二者的實(shí) 施方式的形式。在一個(gè)優(yōu)選實(shí)施方式中,本發(fā)明實(shí)現(xiàn)在軟件中,其包括但不限于固件、駐留 軟件、微代碼等。另外,本發(fā)明可以采用可從如下計(jì)算機(jī)可用或者計(jì)算機(jī)可讀介質(zhì)獲取的計(jì)算機(jī)程 序產(chǎn)品的形式,該計(jì)算機(jī)可用或者計(jì)算機(jī)可讀介質(zhì)提供用于由計(jì)算機(jī)或者任何指令執(zhí)行系 統(tǒng)使用或者與計(jì)算機(jī)或者任何指令執(zhí)行系統(tǒng)結(jié)合使用的程序代碼。出于本說(shuō)明書(shū)的目的, 計(jì)算機(jī)可用或者計(jì)算機(jī)可讀介質(zhì)可以是任何可以包含、存儲(chǔ)、傳送、傳播或者傳輸用于由指 令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用或者與指令執(zhí)行系統(tǒng)、裝置或者設(shè)備結(jié)合使用的程序的裝 置。介質(zhì)可以是電、磁、光、電磁、紅外線或者半導(dǎo)體系統(tǒng)(或者裝置或者設(shè)備)或者傳 播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或者固態(tài)存儲(chǔ)器、磁帶、可拆卸計(jì)算機(jī)磁盤和隨 機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。光盤的目前例子包括光盤-只讀 存儲(chǔ)器(CD-ROM)、光盤-讀/寫(xiě)(CD-R/W)和DVD。此外,計(jì)算機(jī)存儲(chǔ)介質(zhì)可以包含或存儲(chǔ)計(jì)算機(jī)可讀程序代碼,使得當(dāng)該計(jì)算機(jī)可 讀程序代碼在計(jì)算機(jī)上執(zhí)行時(shí),此計(jì)算機(jī)可讀程序代碼的執(zhí)行使得計(jì)算機(jī)通過(guò)通信鏈路傳 輸另一計(jì)算機(jī)可讀程序代碼。此通信鏈路可以使用例如而非限制的是物理或無(wú)線的介質(zhì)。適于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括通過(guò)系統(tǒng)總線直接或間接 地耦合到存儲(chǔ)器元件的至少一個(gè)處理器。存儲(chǔ)器元件可以包括在程序代碼的實(shí)際執(zhí)行期間 使用到的本地存儲(chǔ)器、塊存儲(chǔ)器,以及提供至少某些程序代碼臨時(shí)存儲(chǔ)以減少在執(zhí)行中必 須從大容量存儲(chǔ)器取回代碼的次數(shù)的高速緩沖存儲(chǔ)器。輸入/輸出設(shè)備或稱I/O設(shè)備(包括但不限于鍵盤、顯示器、指點(diǎn)設(shè)備等)可以直 接或通過(guò)居間I/O控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器也可以耦合到系統(tǒng),以便通過(guò)中間私有或公共網(wǎng)絡(luò),使數(shù)據(jù)處理系統(tǒng) 耦合到其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太 網(wǎng)卡僅只是當(dāng)前可用類型的網(wǎng)絡(luò)適配器中的一些。出于示例和描述的目的,已經(jīng)給出了本發(fā)明實(shí)施的描述,而該描述并非是窮舉性 的也并非要將本發(fā)明限制到所公開(kāi)的確切形式。對(duì)于本領(lǐng)域技術(shù)人員而言,很多修改和變 體是顯而易見(jiàn)的。選擇和描述這些實(shí)施例是為了最好地說(shuō)明本發(fā)明的原理及其實(shí)際應(yīng)用, 以使得本領(lǐng)域的其他技術(shù)人員能夠理解用于具有適合于構(gòu)思的特定用途的各種修改的各種實(shí)施方式的本發(fā)明.
權(quán)利要求
一種用于對(duì)服務(wù)器集群中的故障恢復(fù)進(jìn)行管理的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述計(jì)算機(jī)實(shí)現(xiàn)的方法包括響應(yīng)于在分布式網(wǎng)絡(luò)中的所述服務(wù)器集群中檢測(cè)到故障服務(wù)器,停止故障恢復(fù)服務(wù)器的訂閱消息處理;打開(kāi)所述故障服務(wù)器的訂閱隊(duì)列;向特定消息收發(fā)話題的所有訂戶發(fā)布標(biāo)記消息,其中所述標(biāo)記消息包括現(xiàn)在正對(duì)所述故障服務(wù)器的訂閱隊(duì)列進(jìn)行管理的所述故障恢復(fù)服務(wù)器的標(biāo)識(shí);處理所述故障服務(wù)器的訂閱隊(duì)列中的消息;確定所述故障服務(wù)器的訂閱隊(duì)列中的消息是否是所述標(biāo)記消息;響應(yīng)于確定所述故障服務(wù)器的訂閱隊(duì)列中的消息是所述標(biāo)記消息,關(guān)閉所述故障服務(wù)器的訂閱隊(duì)列;以及重新開(kāi)始所述故障恢復(fù)服務(wù)器的訂閱消息處理。
2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括響應(yīng)于確定所述故障服務(wù)器的訂閱隊(duì)列中的消息不是所述標(biāo)記消息,將所述消息記錄 為已讀;以及對(duì)用于所述故障服務(wù)器的有關(guān)訂閱會(huì)話執(zhí)行處理。
3.如權(quán)利要求1或2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括確定所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息是否是所述標(biāo)記消息;以及 響應(yīng)于確定所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息是所述標(biāo)記消息,重新開(kāi)始正常 操作。
4.如權(quán)利要求1、2或3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括響應(yīng)于確定所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息不是所述標(biāo)記消息并且所述消 息未讀,對(duì)用于所述故障恢復(fù)服務(wù)器的有關(guān)訂閱會(huì)話執(zhí)行處理。
5.如權(quán)利要求1、2、3或4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 響應(yīng)于服務(wù)器啟動(dòng),生成用于所述服務(wù)器的唯一訂閱標(biāo)識(shí);以及響應(yīng)于創(chuàng)建新會(huì)話,將所述唯一訂閱標(biāo)識(shí)存儲(chǔ)在所述新會(huì)話中,其中所述唯一訂閱標(biāo) 識(shí)在所述新會(huì)話的生命期持續(xù)存在于所述新會(huì)話中。
6.如權(quán)利要求5所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述唯一訂閱標(biāo)識(shí)用于與訂閱消息收 發(fā)話題進(jìn)行連接。
7.如前述任一權(quán)利要求所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述分布式網(wǎng)絡(luò)是利用會(huì)話親 緣性的分布式發(fā)布_訂閱網(wǎng)絡(luò)。
8.如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述標(biāo)記消息同時(shí)出現(xiàn)在所述故障服 務(wù)器的訂閱隊(duì)列中和所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中。
9.如權(quán)利要求3或8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述標(biāo)記消息用于在所述故障恢 復(fù)服務(wù)器重新開(kāi)始所述正常操作之前,將所述故障服務(wù)器的訂閱隊(duì)列與所述故障恢復(fù)服務(wù) 器的訂閱隊(duì)列同步。
10.一種用于對(duì)服務(wù)器集群中的故障恢復(fù)進(jìn)行管理的數(shù)據(jù)處理系統(tǒng),包括 總線系統(tǒng);存儲(chǔ)設(shè)備,其連接至所述總線系統(tǒng),其中所述存儲(chǔ)設(shè)備包括指令集;以及處理單元,其連接至所述總線系統(tǒng),其中所述處理單元執(zhí)行所述指令集以響應(yīng)于在分布式網(wǎng)絡(luò)中的所述服務(wù)器集群中檢測(cè)到故障服務(wù)器,停止故障恢復(fù)服務(wù)器 的訂閱消息處理;打開(kāi)所述故障服務(wù)器的訂閱隊(duì)列;向特定消息收發(fā)話題的所有訂戶發(fā)布 標(biāo)記消息,其中所述標(biāo)記消息包括現(xiàn)在正對(duì)所述故障服務(wù)器的訂閱隊(duì)列進(jìn)行管理的所述故 障恢復(fù)服務(wù)器的標(biāo)識(shí);處理所述故障服務(wù)器的訂閱隊(duì)列中的消息;確定所述故障服務(wù)器的 訂閱隊(duì)列中的消息是否是所述標(biāo)記消息;響應(yīng)于確定所述故障服務(wù)器的訂閱隊(duì)列中的消息 是所述標(biāo)記消息,關(guān)閉所述故障服務(wù)器的訂閱隊(duì)列;以及重新開(kāi)始所述故障恢復(fù)服務(wù)器的 訂閱消息處理。
11.如權(quán)利要求10所述的數(shù)據(jù)處理系統(tǒng),其中所述處理單元執(zhí)行另一指令集,以響應(yīng) 于確定所述故障服務(wù)器的訂閱隊(duì)列中的消息不是所述標(biāo)記消息,將所述消息記錄為已讀; 以及對(duì)用于所述故障服務(wù)器的有關(guān)訂閱會(huì)話執(zhí)行處理。
12.如權(quán)利要求10或11所述的數(shù)據(jù)處理系統(tǒng),其中所述處理單元執(zhí)行又一指令集,以 確定所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息是否是所述標(biāo)記消息;以及響應(yīng)于確定所述 故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息是所述標(biāo)記消息,重新開(kāi)始正常操作。
13.如權(quán)利要求10、11或12所述的數(shù)據(jù)處理系統(tǒng),進(jìn)一步包括用于響應(yīng)于確定所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息不是所述標(biāo)記消息并且所 述消息未讀,對(duì)用于所述故障恢復(fù)服務(wù)器的有關(guān)訂閱會(huì)話執(zhí)行處理的裝置。
14.如權(quán)利要求10、11、12或13所述的數(shù)據(jù)處理系統(tǒng),進(jìn)一步包括用于響應(yīng)于服務(wù)器啟動(dòng),生成用于所述服務(wù)器的唯一訂閱標(biāo)識(shí)的裝置;以及用于響應(yīng)于創(chuàng)建新會(huì)話,將所述唯一訂閱標(biāo)識(shí)存儲(chǔ)在所述新會(huì)話中的裝置,其中所述 唯一訂閱標(biāo)識(shí)在所述新會(huì)話的生命期持續(xù)存在于所述新會(huì)話中。
15.如權(quán)利要求14所述的數(shù)據(jù)處理系統(tǒng),其中所述唯一訂閱標(biāo)識(shí)用于與訂閱消息收發(fā) 話題進(jìn)行連接。
16.如權(quán)利要求10-15中任一所述的數(shù)據(jù)處理系統(tǒng),其中所述分布式網(wǎng)絡(luò)是利用會(huì)話 親緣性的分布式發(fā)布_訂閱網(wǎng)絡(luò)。
17.如權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其中所述標(biāo)記消息同時(shí)出現(xiàn)在所述故障服務(wù) 器的訂閱隊(duì)列中和所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中。
18.如權(quán)利要求12或17所述的數(shù)據(jù)處理系統(tǒng),其中所述標(biāo)記消息用于在所述故障恢復(fù) 服務(wù)器重新開(kāi)始所述正常操作之前,將所述故障服務(wù)器的訂閱隊(duì)列與所述故障恢復(fù)服務(wù)器 的訂閱隊(duì)列同步。
19.一種用于對(duì)服務(wù)器集群中的故障恢復(fù)進(jìn)行管理的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程 序產(chǎn)品包括計(jì)算機(jī)可用介質(zhì),其中包含計(jì)算機(jī)可用程序代碼,所述計(jì)算機(jī)可用介質(zhì)包括配置用于響應(yīng)于在分布式網(wǎng)絡(luò)中的所述服務(wù)器集群中檢測(cè)到故障服務(wù)器,停止故障恢 復(fù)服務(wù)器的訂閱消息處理的計(jì)算機(jī)可用程序代碼;配置用于打開(kāi)所述故障服務(wù)器的訂閱隊(duì)列的計(jì)算機(jī)可用程序代碼;配置用于向特定消息收發(fā)話題的所有訂戶發(fā)布標(biāo)記消息的計(jì)算機(jī)可用程序代碼,其中 所述標(biāo)記消息包括現(xiàn)在正對(duì)所述故障服務(wù)器的訂閱隊(duì)列進(jìn)行管理的所述故障恢復(fù)服務(wù)器 的標(biāo)識(shí);配置用于處理所述故障服務(wù)器的訂閱隊(duì)列中的消息的計(jì)算機(jī)可用程序代碼;配置用于確定所述故障服務(wù)器的訂閱隊(duì)列中的消息是否是所述標(biāo)記消息的計(jì)算機(jī)可 用程序代碼;配置用于響應(yīng)于確定所述故障服務(wù)器的訂閱隊(duì)列中的消息是所述標(biāo)記消息,關(guān)閉所述 故障服務(wù)器的訂閱隊(duì)列的計(jì)算機(jī)可用程序代碼;以及配置用于重新開(kāi)始所述故障恢復(fù)服務(wù)器的訂閱消息處理的計(jì)算機(jī)可用程序代碼。
20.如權(quán)利要求19所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括配置用于響應(yīng)于確定所述故障服務(wù)器的訂閱隊(duì)列中的消息不是所述標(biāo)記消息,將所述 消息記錄為已讀的計(jì)算機(jī)可用程序代碼;以及配置用于對(duì)用于所述故障服務(wù)器的有關(guān)訂閱會(huì)話執(zhí)行處理的計(jì)算機(jī)可用程序代碼。
21.如權(quán)利要求19或20所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括配置用于確定所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息是否是所述標(biāo)記消息的計(jì)算 機(jī)可用程序代碼;以及配置用于響應(yīng)于確定所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息是所述標(biāo)記消息,重新 開(kāi)始正常操作的計(jì)算機(jī)可用程序代碼。
22.如權(quán)利要求19、20或21所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括配置用于響應(yīng)于確定所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中的消息不是所述標(biāo)記消息并 且所述消息未讀,對(duì)用于所述故障恢復(fù)服務(wù)器的有關(guān)訂閱會(huì)話執(zhí)行處理的計(jì)算機(jī)可用程序 代碼。
23.如權(quán)利要求19、20、21或22所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括配置用于響應(yīng)于服務(wù)器啟動(dòng),生成用于所述服務(wù)器的唯一訂閱標(biāo)識(shí)的計(jì)算機(jī)可用程序 代碼;以及配置用于響應(yīng)于創(chuàng)建新會(huì)話,將所述唯一訂閱標(biāo)識(shí)存儲(chǔ)在所述新會(huì)話中的計(jì)算機(jī)可用 程序代碼,其中所述唯一訂閱標(biāo)識(shí)在所述新會(huì)話的生命期持續(xù)存在于所述新會(huì)話中。
24.如權(quán)利要求23所述的計(jì)算機(jī)程序產(chǎn)品,其中所述唯一訂閱標(biāo)識(shí)用于與訂閱消息收 發(fā)話題進(jìn)行連接。
25.如權(quán)利要求19-24中任一所述的計(jì)算機(jī)程序產(chǎn)品,其中所述分布式網(wǎng)絡(luò)是利用會(huì) 話親緣性的分布式發(fā)布_訂閱網(wǎng)絡(luò)。
26.如權(quán)利要求21所述的計(jì)算機(jī)程序產(chǎn)品,其中所述標(biāo)記消息同時(shí)出現(xiàn)在所述故障服 務(wù)器的訂閱隊(duì)列中和所述故障恢復(fù)服務(wù)器的訂閱隊(duì)列中。
27.如權(quán)利要求21或26所述的計(jì)算機(jī)程序產(chǎn)品,其中所述標(biāo)記消息用于在所述故障恢 復(fù)服務(wù)器重新開(kāi)始所述正常操作之前,將所述故障服務(wù)器的訂閱隊(duì)列與所述故障恢復(fù)服務(wù) 器的訂閱隊(duì)列同步。
28.一種計(jì)算機(jī)程序,其包括程序代碼裝置,當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí),其適用于 執(zhí)行權(quán)利要求1-9中任一所述的方法。
全文摘要
一種用于對(duì)服務(wù)器集群中的故障恢復(fù)進(jìn)行管理的系統(tǒng)。響應(yīng)于檢測(cè)到故障服務(wù)器,停止故障恢復(fù)服務(wù)器的訂閱消息處理。打開(kāi)故障服務(wù)器的訂閱隊(duì)列。向特定消息收發(fā)話題的所有訂戶發(fā)布標(biāo)記消息。該標(biāo)記消息包括對(duì)故障服務(wù)器的訂閱隊(duì)列進(jìn)行管理的故障恢復(fù)服務(wù)器的標(biāo)識(shí)。處理故障服務(wù)器的訂閱隊(duì)列中的消息。響應(yīng)于確定故障服務(wù)器的訂閱隊(duì)列中的消息是標(biāo)記消息,關(guān)閉故障服務(wù)器的訂閱隊(duì)列。繼而,故障恢復(fù)服務(wù)器重新開(kāi)始其原始訂閱隊(duì)列的處理,在處理來(lái)自該隊(duì)列的未讀消息的同時(shí),查找標(biāo)記消息。一旦在原始訂閱隊(duì)列中找到標(biāo)記消息,便恢復(fù)正常操作。
文檔編號(hào)G06F15/16GK101821993SQ200880111597
公開(kāi)日2010年9月1日 申請(qǐng)日期2008年10月15日 優(yōu)先權(quán)日2007年10月15日
發(fā)明者A·W·小韋羅貝爾, B·K-Y·陳, M·D·吉爾莫爾, M·吉爾費(fèi)克斯, O·塔爾-阿維維, V·莫爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司