一種用于計算機系統(tǒng)的故障恢復方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種用于計算機系統(tǒng)的故障恢復方法。所述計算機系統(tǒng)中包括用于管理所述計算機系統(tǒng)與外部設備之間的消息通訊的會話管理進程以及用于對所述外部設備的訪問請求進行處理的數(shù)據(jù)處理進程。所述故障恢復方法包括:a.比較由所述數(shù)據(jù)處理進程發(fā)送給所述會話管理進程的第一消息與所述數(shù)據(jù)處理進程生成的包含數(shù)據(jù)處理結(jié)果的第二消息的消息標識,其中,所述第一消息是基于所述第二消息生成的;以及b.在所述第一消息與所述第二消息的消息標識不一致的情況下,基于所述第二消息來同步所述第一消息。
【專利說明】一種用于計算機系統(tǒng)的故障恢復方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,更具體地,涉及一種用于計算機系統(tǒng)的故障恢復方法及裝置。
【背景技術(shù)】
[0002]隨著計算機和網(wǎng)絡技術(shù)的迅速發(fā)展,在銀行、外匯交易、股票交易等領(lǐng)域,越來越多的計算機系統(tǒng)被使用。這些計算機系統(tǒng)往往被作為后臺服務器使用,其通過網(wǎng)絡連接到各種終端或工作站,并通過運行各種進程來響應這些終端或工作站的訪問請求,進而實現(xiàn)相應的業(yè)務及數(shù)據(jù)處理。
[0003]然而,在這種計算機系統(tǒng)運行時,由于各種原因,例如由于軟件錯誤、硬件或網(wǎng)絡錯誤,等等,該計算機系統(tǒng)可能會出現(xiàn)運行故障。這些故障會嚴重影響數(shù)據(jù)處理的實時性和準確性。例如,運行故障可能會使得系統(tǒng)暫時停止運行,從而使得該計算機系統(tǒng)不能實時地響應交易請求或其他訪問請求;或者該運行故障可能會導致一些重要的業(yè)務數(shù)據(jù)丟失。
[0004]因此,有必要提供一種能夠監(jiān)控計算機系統(tǒng)的運行狀態(tài),并且在出現(xiàn)故障時及時進行故障恢復的方法及裝置。
【發(fā)明內(nèi)容】
[0005]可見,現(xiàn)有的計算機系統(tǒng)不能夠?qū)崟r地檢測運行故障,并且不能夠在出現(xiàn)故障時及時地進行故障恢復。
[0006]因此,針對上述問題,根據(jù)本發(fā)明的第一方面,提出了一種用于計算機系統(tǒng)的故障恢復方法,其中,所述計算機系統(tǒng)中包括用于管理所述計算機系統(tǒng)與外部設備之間的消息通訊的會話管理進程以及用于對所述外部設備的訪問請求進行處理的數(shù)據(jù)處理進程,所述故障恢復方法包括#比較由所述數(shù)據(jù)處理進程發(fā)送給所述會話管理進程的第一消息與所述數(shù)據(jù)處理進程生成的包含數(shù)據(jù)處理結(jié)果的第二消息的消息標識,其中,所述第一消息是基于所述第二消息生成的;以及匕在所述第一消息與所述第二消息的消息標識不一致的情況下,基于所述第二消息來同步所述第一消息。
[0007]借助于上述方面的故障恢復方法,該計算機系統(tǒng)能夠確定經(jīng)由其中運行的進程所處理得到的數(shù)據(jù)處理結(jié)果是否準確、及時地發(fā)送出去。如果由于進程錯誤等原因引起第一消息丟失,則該計算機系統(tǒng)能夠及時地根據(jù)已處理得到的數(shù)據(jù)處理結(jié)果重新同步第一消息,已使得該計算機系統(tǒng)能夠及時從故障中恢復,并保持正常運行。
[0008]在一個實施例中,所述方法還包括二比較由所述會話管理進程發(fā)送給所述數(shù)據(jù)處理進程的第三消息與所述第一消息的消息標識,其中,所述第三消息接收自所述外部設備且包含所述訪問請求;以及(1.在所述第一消息與所述第三消息的消息標識不一致的情況下,基于所述第三消息來同步所述第一消息。
[0009]對于數(shù)據(jù)處理進程未能完全、準確處理訪問請求的情況,該計算機系統(tǒng)還能夠通過初始處理前接收的第三消息來同步第一消息,也即通過數(shù)據(jù)處理進程重新處理第一消息中包含的訪問請求,以得到準確處理的數(shù)據(jù)處理結(jié)果,并以第一消息的形式發(fā)送出去。
[0010]在一個實施例中,所述方法還包括:在生成或接收到消息時,將所述消息記錄在消息數(shù)據(jù)庫中;以及在同步所述消息時,基于所述消息的消息標識在所述消息數(shù)據(jù)庫中讀取對應的消息。
[0011]在一個實施例中,在所述消息比較步驟之前,還包括:檢測運行錯誤的進程數(shù)量;以及如果單個進程錯誤,則重啟所述進程,如果有多個進程錯誤,則執(zhí)行所述消息比較和同步的步驟。
[0012]在一個實施例中,所述計算機系統(tǒng)包括:至少一個本地管理器,用于對進程進行管理,其中所述進程配置有線程;以及域管理器,其與所述至少一個本地管理器耦合,用于管理所述至少一個本地管理器及其進程,并通過與所述進程相關(guān)聯(lián)的線程通信以監(jiān)控所述進程的狀態(tài)。
[0013]在一個實施例中,所述方法還包括:檢測運行錯誤的類型;以及如果所述運行錯誤為軟件錯誤,則執(zhí)行所述檢測運行錯誤的進程數(shù)量的步驟;如果所述運行錯誤為硬件錯誤,則更換運行所述進程的硬件設備。
[0014]在一個實施例中,所述比較消息的步驟是由所述域管理器執(zhí)行的;而所述同步消息的步驟是由所述本地管理器執(zhí)行的。
[0015]在一個實施例中,所述進程的所述線程用于在所述進程出現(xiàn)運行錯誤時,向所述本地管理器反饋故障報告。
[0016]在一個實施例中,所述本地管理器用于將所述進程的狀態(tài)和/或所述故障報告發(fā)送至所述域管理器。
[0017]在一個實施例中,所述域管理器用于當需要停止所述進程時,向所述本地管理器發(fā)送停止消息,所述本地管理器進一步用于向所述進程的所述線程轉(zhuǎn)發(fā)所述停止消息,以使得所述線程根據(jù)所述停止消息來停止所述進程。
[0018]根據(jù)本發(fā)明的第二方面,還提出了一種用于計算機系統(tǒng)的故障恢復裝置,其中,所述計算機系統(tǒng)中包括用于管理所述計算機系統(tǒng)與外部設備之間的消息通訊的會話管理進程以及用于對所述外部設備的訪問請求進行處理的數(shù)據(jù)處理進程,包括:第一裝置,用于比較由所述數(shù)據(jù)處理進程發(fā)送給所述會話管理進程的第一消息與所述數(shù)據(jù)處理進程生成的包含數(shù)據(jù)處理結(jié)果的第二消息的消息標識,其中,所述第一消息是基于所述第二消息生成的;以及第二裝置,用于在所述第一消息與所述第二消息的消息標識不一致的情況下,基于所述第二消息來同步所述第一消息。
[0019]在一個實施例中,所述裝置還包括:第三裝置,用于比較由所述會話管理進程發(fā)送給所述數(shù)據(jù)處理進程的第三消息與所述第一消息的消息標識,其中,所述第三消息接收自所述外部設備且包含所述訪問請求;以及第四裝置,用于在所述第一消息與所述第三消息的消息標識不一致的情況下,基于所述第三消息來同步所述第一消息。
[0020]在一個實施例中,還包括:消息數(shù)據(jù)庫,用于在生成或接收到消息時,將所述消息記錄其中;并用于在同步所述消息時,基于所述消息的消息標識來提供對應的消息。
[0021]在一個實施例中,還包括:第五裝置,用于檢測運行錯誤的進程數(shù)量;以及第六裝置,用于如果單個進程錯誤,則重啟所述進程,如果有多個進程錯誤,則執(zhí)行所述消息比較和同步的步驟。
[0022]在一個實施例中,所述計算機系統(tǒng)包括:至少一個本地管理器,用于對進程進行管理,其中所述進程配置有線程;以及域管理器,其與所述至少一個本地管理器耦合,用于管理所述至少一個本地管理器及其進程,并通過與所述進程相關(guān)聯(lián)的線程通信以監(jiān)控所述進程的狀態(tài)。
[0023]在一個實施例中,還包括:第七裝置,用于檢測運行錯誤的類型;以及第八裝置,用于如果所述運行錯誤為軟件錯誤,則執(zhí)行所述檢測運行錯誤的進程數(shù)量的步驟;如果所述運行錯誤為硬件錯誤,則更換運行所述進程的硬件設備。
[0024]在一個實施例中,所述進程的所述線程用于在所述進程出現(xiàn)運行錯誤時,向所述本地管理器反饋故障報告。
[0025]在一個實施例中,所述本地管理器用于將所述進程的狀態(tài)和/或所述故障報告發(fā)送至所述域管理器。
[0026]在一個實施例中,所述域管理器用于當需要停止所述進程時,向所述本地管理器發(fā)送停止消息,所述本地管理器進一步用于向所述進程的所述線程轉(zhuǎn)發(fā)所述停止消息,以使得所述線程根據(jù)所述停止消息來停止所述進程。
[0027]上文已經(jīng)概括而非寬泛地給出了本
【發(fā)明內(nèi)容】
的特征。本
【發(fā)明內(nèi)容】
的附加特征將在此后描述,其形成了本發(fā)明權(quán)利要求的主題。本領(lǐng)域技術(shù)人員應當理解,可以容易地使用所公開的構(gòu)思和【具體實施方式】,作為修改或設計其他結(jié)構(gòu)或者過程的基礎,以便執(zhí)行與本發(fā)明相同的目的。本領(lǐng)域技術(shù)人員還應當理解,這些等同結(jié)構(gòu)沒有脫離所附權(quán)利要求書中記載的本發(fā)明的主旨和范圍。
【專利附圖】
【附圖說明】
[0028]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更加明顯:
[0029]圖1示出了可以應用根據(jù)本發(fā)明實施例的故障恢復方法及裝置的計算機系統(tǒng)100的框圖;
[0030]圖2示出了圖1的計算機系統(tǒng)處理訪問請求的流程框圖200 ;
[0031]圖3示出了根據(jù)本發(fā)明的第一實施例的故障恢復方法300的流程圖;
[0032]圖4示出了根據(jù)本發(fā)明的第二實施例的故障恢復裝置400的框圖。
[0033]在圖中,貫穿不同的示圖,相同或類似的附圖標記表示相同或相對應的部件或特征。
[0034]繪制附圖是為了清晰地示出本公開內(nèi)容的實施方式的有關(guān)方面。為了更為清晰地示出某些實施方式,在附圖標記之后可能跟隨有字母,其指示相同結(jié)構(gòu)、材料或者過程步驟的變形。
【具體實施方式】
[0035]一些例子在上述圖中示出并且在下面加以詳細描述。這些圖并不一定按比例,并且出于清楚和/或簡潔的目的,圖的某些特征和某些視圖可能會在比例上或在示意上被夸大地示出。應當理解,雖然下述說明書提供了用于實現(xiàn)各種實施例的不同的特征的許多不同的實施例或例子,但是可以實現(xiàn)其他的實施例和/或可以進行結(jié)構(gòu)的變化而不偏離本公開的范圍。此外,雖然下文描述了部件和布置的特定的示例,但是這些當然僅是示例而不應該被理解為是限制。此外,本公開在各個示例中重復了附圖標記和/或字母。該重復僅是為了清楚起見,而并非本身規(guī)定在所討論的各個實施例和/或示例性配置之間的關(guān)系。
[0036]圖1示出了可以應用根據(jù)本發(fā)明實施例的故障恢復方法及裝置的計算機系統(tǒng)100的框圖。
[0037]如圖1所示,計算機系統(tǒng)100包括三個本地管理器(匕⑶丨叫6^) 101、102以及 103、一個域管理器(0(31118111107 以及一個控制器($781:6111 ^(1111111181: 1011¢0118016) 108。本地管理器101、102和103分別耦合至域管理器107,而域管理器107轉(zhuǎn)而耦合至控制器108。雖然在此示出了三個本地管理器、一個域管理器以及一個控制器,但是本領(lǐng)域的技術(shù)人員應當理解,該些數(shù)量只是為了示例性地說明而選定的,是非限制性的。在本發(fā)明的其他實施例中,能夠根據(jù)實際需要來任意設置本地管理器、域管理器以及控制器的數(shù)目??梢钥闯?,該計算機系統(tǒng)100具有多級管理結(jié)構(gòu),有利于對進程和/或資源施行活動管理功能、維護管理功能、控制功能、診斷功能、實時監(jiān)控功能、與安全有關(guān)的功能、配置功能等。
[0038]如圖1所示,本地管理器101、102和103用于管理相關(guān)的進程。本地管理器101、102和103中的每一個可以例如安裝在一臺計算機上,并例如管理在該計算機上運行的應用程序,即進程。此外,為了簡明起見,對于每個本地管理器,僅示出了三個其所需要管理的進程。即,對于本地管理器101,其用于管理進程10、20和30。對于本地管理器102,其用于管理進程40、50和60。對于本地管理器103,其用于管理進程70、80和90。當然,本領(lǐng)域的技術(shù)人員應當理解,上述進程的數(shù)量僅是示例性的,而非限制性的。
[0039]在實際應用中,進程包括但不限于會話管理進程、數(shù)據(jù)處理進程、錯誤檢測、故障恢復以及其他進程,等等。其中,會話管理進程用于管理計算機系統(tǒng)100與外部設備(圖中未示出)之間的消息通訊,而數(shù)據(jù)處理進程用于對外部設備的訪問請求進行處理。
[0040]域管理器107用于管理本地管理器101、102和103及所有相關(guān)的進程10、20、30、40、50、60、70、80和90。域管理器107可以獲取本地管理器101、102、103的狀態(tài)和所有相關(guān)的進程的狀態(tài)。并且當本地管理器101、102、103發(fā)生故障時,或某個進程發(fā)生故障時,域管理器107都可以獲悉。例如,域管理器107和本地管理器101、102和103,本地管理器101、102和103和各個進程10、20、30、40、50、60、70、80和90之間都可以有一個心跳的維護。
[0041]此外,控制器108用于經(jīng)由域管理器107與本地管理器101、102和103來管理相關(guān)的進程。而與進程相關(guān)聯(lián)的信息,例如進程的狀態(tài)、資源的狀態(tài)、進程與資源的分配關(guān)系都會實時地經(jīng)由域管理器107與本地管理器101、102和103被反映至控制器108。由此,控制器108處的操作員可以實時地監(jiān)控相關(guān)的進程。而當控制器108處的操作員需要實施對進程實施某個操作時,其也可以經(jīng)由域管理器107與本地管理器101、102和103來對該進程進行管理(下文將詳述)。
[0042]另一方面,對每個進程,都設置有用于協(xié)助管理該進程的線程八-111)。參見圖1,為進程10設置有線程1,為進程20設置有線程2,為進程30設置有線程3,為進程40設置有線程4,為進程50設置有線程5,為進程60設置有線程6,為進程70設置有線程7,為進程80設置有線程8,為進程90設置有線程9。
[0043]優(yōu)選地,該線程還用于對分配給進程的資源進行管理。具體地,例如線程1用于對由本地管理器101分配給進程10的資源進行管理。
[0044]此外,每個本地管理器與一個資源耦合。例如,本地管理器101與資源104耦合、本地管理器102與資源105耦合、本地管理器103與資源106耦合。這些資源104、105和106中的任一個或全部可以是數(shù)據(jù)庫,并且可以位于共享的存儲器上,從而即使本地管理器發(fā)生故障也不會對資源產(chǎn)生影響。
[0045]雖然在此示出了每個本地管理器都與一個資源耦合,但是在本發(fā)明的其他實施例中,本地管理器101、102和103也可以都耦合至一個資源上,即一個共享的存儲器。
[0046]在本地管理器101、102和103中還存儲有配置文件。這些配置文件中包括資源與進程的分配關(guān)系。例如對于本地管理器101,相應的配置文件表示進程10、20以及30和資源104中的資源的對應關(guān)系。對于本地管理器102,相應的配置文件表示進程40、50以及60和資源105中的資源的對應關(guān)系。對于本地管理器103,相應的配置文件表示進程70、80以及90和資源106中的資源的對應關(guān)系。
[0047]圖2示出了圖1的計算機系統(tǒng)處理訪問請求的流程框圖。
[0048]如圖2所示,首先,該計算機系統(tǒng)通過通信管理器201接收外部設備發(fā)送的第三消息,該第三消息包含有訪問請求。接著,該第三消息被通過第一協(xié)議轉(zhuǎn)換進程203轉(zhuǎn)換為計算機系統(tǒng)內(nèi)部可識別的格式。之后,該第三消息被發(fā)送到會話管理進程205。接著,會話管理進程205將該第一消息轉(zhuǎn)發(fā)給數(shù)據(jù)處理進程隊列207,該數(shù)據(jù)處理進程隊列207中可能包含有一個或更多個能夠?qū)Φ谌⑦M行處理的數(shù)據(jù)處理進程,并且不同的數(shù)據(jù)處理進程可以運行在相同或不同的計算機中,也即由相同或不同的本地管理器進行管理。同時,該會話管理進程205還將該第三消息存儲到消息數(shù)據(jù)庫209中。
[0049]數(shù)據(jù)處理進程隊列207針對第三消息中包含的訪問請求相應地進行處理,以生成包含數(shù)據(jù)處理結(jié)果的第二消息,并將所述第二消息發(fā)送給所述會話管理進程211。同時,該第二消息會被存儲到消息數(shù)據(jù)庫209中。
[0050]之后,會話管理進程211接收第二消息,并基于該第二消息生成第一消息,并將該第一消息轉(zhuǎn)發(fā)給第二協(xié)議轉(zhuǎn)換進程213。同時,該第一消息還被會話管理進程213存儲到消息數(shù)據(jù)庫209中。再然后,第二協(xié)議轉(zhuǎn)換進程213將該第一消息轉(zhuǎn)換為可為外部設備識別的格式,并通過通信管理器201發(fā)送出去。
[0051]這樣,該計算機系統(tǒng)即完成了對外部設備訪問請求的處理。需要說明的是,在該訪問請求的處理過程中,任何的一條消息都會被分配一個唯一的消息標識來加以識別,該消息標識例如為數(shù)字排列的序號。消息標識,即消息序號會在每次會話過程中從1開始,在整個會話過程中連續(xù)遞增,直到會話過程全部結(jié)束。因此,通過監(jiān)視消息序號的連續(xù)性即可識別交換中的消息缺口,并作出反應,以使得不會出現(xiàn)消息丟失的情況。
[0052]圖3示出了根據(jù)本發(fā)明的第一實施例的故障恢復方法300的流程圖。正如前述,該計算機系統(tǒng)通過線程來監(jiān)控其中運行的進程的運行。其中,該線程將進程的標識符、進程的運行狀態(tài)(例如包括啟動、停止或失效狀態(tài))提供給本地管理器,進而再由本地管理器提供給域管理器。這樣,域管理器可以獲得計算機系統(tǒng)中所有進程的運行狀態(tài),借以判斷是否出現(xiàn)軟件錯誤、硬件錯誤等導致的運行故障。
[0053]具體而言,當進程運行錯誤時,線程可以在進程出現(xiàn)運行錯誤時,向本地管理器反饋故障報告。本地管理器用于將進程的狀態(tài)和/或所述故障報告發(fā)送至域管理器。相應地,域管理器可以當需要停止所述進程時,向本地管理器發(fā)送停止消息,本地管理器進一步向進程的線程轉(zhuǎn)發(fā)該停止消息,以使得線程根據(jù)所述停止消息來停止進程。這樣,發(fā)生運行錯誤的進程可以被停止,以避免不必要地錯誤運行繼續(xù)。
[0054]如圖3所示,該故障恢復方法300包括:
[0055]在步驟3302中,某個或某些線程向本地管理器發(fā)出運行故障的指示,例如該些線程不再向本地管理器發(fā)出心跳,本地管理器得以確定該些線程所監(jiān)控的進程運行故障。
[0056]之后,在步驟3304中,檢測運行錯誤的類型,即該運行錯誤是硬件錯誤還是軟件錯誤。如果是硬件錯誤,則執(zhí)行步驟3305,更換運行所述進程的硬件設備。其中,對于圖1所示的計算機系統(tǒng),其中每個本地管理器還對應地設置有一個或多個備用本地管理器,其用于在本地管理器發(fā)生硬件錯誤時,響應于域管理器的指示而應急啟動,并且同時啟動其中對應的備用進程,從而接替發(fā)生硬件錯誤的本地管理器的運行,以保持該計算機系統(tǒng)中運行的各個進程正常運行。此外,在一些例子中,該計算機系統(tǒng)還設置有備用域管理器以及對應的備用計算機子系統(tǒng)。當域管理器發(fā)生硬件錯誤時,該備用域管理器及備用計算機子系統(tǒng)會接替該發(fā)生錯誤的域管理器及計算機系統(tǒng)運行。
[0057]如果運行錯誤是軟件錯誤,也即由于一個或多個進程的軟件錯誤所導致的運行故障。則執(zhí)行步驟3306,域管理器向負責故障恢復的本地管理器發(fā)出指令,并指示其進一步啟動故障恢復進程。
[0058]接著,執(zhí)行步驟3308,本地管理器指示停止所有數(shù)據(jù)處理進程。
[0059]之后,執(zhí)行步驟3310,檢測運行錯誤的進程數(shù)量。如果僅有單個進程錯誤,則執(zhí)行步驟3312,重啟該進程。如果有多個進程錯誤,則執(zhí)行執(zhí)行步驟3314,比較由數(shù)據(jù)處理進程發(fā)送給會話管理進程的第一消息與數(shù)據(jù)處理進程生成的包含數(shù)據(jù)處理結(jié)果的第二消息的消息標識,其中,第一消息是基于所述第二消息生成的。
[0060]如果第一消息與第二消息的消息標識匹配,例如相同,則說明第一消息已包含了準確地數(shù)據(jù)處理結(jié)果,可以發(fā)送出去。則進一步地可以借由網(wǎng)絡管理器發(fā)送給外部設備。
[0061]然而,如果第一消息與第二消息的消息標識不一致,則說明進程運行錯誤已導致該第一消息丟失,因而執(zhí)行步驟3316,基于第二消息來同步第一消息,例如,從消息數(shù)據(jù)庫中讀取第二消息,并將第二消息重新發(fā)送給會話管理進程,從而得到更新的第一消息。其中,消息數(shù)據(jù)庫是獨立于進程的,例如消息數(shù)據(jù)庫被設置在圖1所示的資源104、105或106中。因此,進程所發(fā)生的運行故障并不會影響消息的獲取與更新。
[0062]在一些情況下,由于運行故障并非是在數(shù)據(jù)處理進程處理完之后丟失的,而有可能是在數(shù)據(jù)處理期間即發(fā)生運行錯誤,而使得數(shù)據(jù)處理結(jié)果不正確,即第二消息本身并不準確。因此,可選地,可以在步驟3314之后,進一步執(zhí)行步驟3318,比較由會話管理進程發(fā)送給數(shù)據(jù)處理進程的第三消息與所述第一消息的消息標識,其中,第三消息接收自外部設備且包含訪問請求。如果第一消息與第三消息的消息標識一致,則說明第一消息包含正確的數(shù)據(jù)處理結(jié)果。然而,如果第三消息與第一消息不一致,則說明訪問請求被部分或錯誤地處理,并導致數(shù)據(jù)丟失。在這種情況下,執(zhí)行步驟3320,基于第三消息來同步第一消息。例如,將第三消息重新發(fā)送給數(shù)據(jù)處理進程,并在該數(shù)據(jù)處理進程處理結(jié)束之后,將包含更新的數(shù)據(jù)處理結(jié)果的第二消息發(fā)送給會話管理進程,以生成更新的第三消息。
[0063]這樣,由于進程運行錯誤導致的系統(tǒng)故障即可以被消除并恢復,從而實現(xiàn)系統(tǒng)的正常運行。
[0064]圖4示出了根據(jù)本發(fā)明的第二實施例的故障恢復裝置400的框圖。其中,該故障恢復裝置400用于計算機系統(tǒng)的故障恢復,該計算機系統(tǒng)中包括用于管理計算機系統(tǒng)與外部設備之間的消息通訊的會話管理進程以及用于對外部設備的訪問請求進行處理的數(shù)據(jù)處理進程。
[0065]如圖4所示,該故障恢復裝置400包括:
[0066]第一裝置401,用于比較由所述數(shù)據(jù)處理進程發(fā)送給所述會話管理進程的第一消息與所述數(shù)據(jù)處理進程生成的包含數(shù)據(jù)處理結(jié)果的第二消息的消息標識,其中,所述第一消息是基于所述第二消息生成的;
[0067]第二裝置403,用于在所述第一消息與所述第二消息的消息標識不一致的情況下,基于所述第二消息來同步所述第一消息。
[0068]在一些例子中,該裝置400還包括:
[0069]第三裝置405,用于比較由所述會話管理進程發(fā)送給所述數(shù)據(jù)處理進程的第三消息與所述第一消息的消息標識,其中,所述第三消息接收自所述外部設備且包含所述訪問請求;
[0070]第四裝置407,用于在所述第一消息與所述第三消息的消息標識不一致的情況下,基于所述第三消息來同步所述第一消息。
[0071]在一個實施例中,還包括:消息數(shù)據(jù)庫,用于在生成或接收到消息時,將所述消息記錄其中;并用于在同步所述消息時,基于所述消息的消息標識來提供對應的消息。
[0072]在一個實施例中,還包括:第五裝置,用于檢測運行錯誤的進程數(shù)量;以及第六裝置,用于如果單個進程錯誤,則重啟所述進程,如果有多個進程錯誤,則執(zhí)行所述消息比較和同步的步驟。
[0073]在一個實施例中,所述計算機系統(tǒng)包括:至少一個本地管理器,用于對進程進行管理,其中所述進程配置有線程;以及域管理器,其與所述至少一個本地管理器耦合,用于管理所述至少一個本地管理器及其進程,并通過與所述進程相關(guān)聯(lián)的線程通信以監(jiān)控所述進程的狀態(tài)。
[0074]在一個實施例中,還包括:第七裝置,用于檢測運行錯誤的類型;以及第八裝置,用于如果所述運行錯誤為軟件錯誤,則執(zhí)行所述檢測運行錯誤的進程數(shù)量的步驟;如果所述運行錯誤為硬件錯誤,則更換運行所述進程的硬件設備。
[0075]在一個實施例中,所述進程的所述線程用于在所述進程出現(xiàn)運行錯誤時,向所述本地管理器反饋故障報告。
[0076]在一個實施例中,所述本地管理器用于將所述進程的狀態(tài)和/或所述故障報告發(fā)送至所述域管理器。
[0077]在一個實施例中,所述域管理器用于當需要停止所述進程時,向所述本地管理器發(fā)送停止消息,所述本地管理器進一步用于向所述進程的所述線程轉(zhuǎn)發(fā)所述停止消息,以使得所述線程根據(jù)所述停止消息來停止所述進程。
[0078]上述示例性方法和/或裝置的至少一些由在計算機處理器上運行的一個或多個軟件和/或固件程序?qū)崿F(xiàn)。然而,包括但不限于專用集成電路、可編程邏輯陣列和其它硬件設備的專用硬件實現(xiàn)能夠同樣被構(gòu)造為整體地或部分地實現(xiàn)這里所述的示例性方法和/或裝置的一些或全部。此外,包括但不限于分布式處理或部件/對象分布式處理、并行處理或虛擬機處理的替代的軟件實現(xiàn)也能夠被構(gòu)造為實現(xiàn)這里所述的示例性方法和/或系統(tǒng)。
[0079]還應注意,這里所述的示例性軟件和/或固件實現(xiàn)被存儲在有形存儲介質(zhì)上,例如:磁性介質(zhì)(例如,磁盤或磁帶);磁光或光學介質(zhì)例如光盤;或固態(tài)介質(zhì),例如存儲卡或容納一個或多個只讀(非易失性)存儲器、隨機存取存儲器或其它可重寫的(易失性)存儲器的其它封裝。因此,這里所述的示例性軟件和/或固件能夠存儲在有形存儲介質(zhì)例如上面或后繼描述的介質(zhì)的存儲介質(zhì)上。在上面的說明書引用特定的標準和協(xié)議來描述示例性部件和功能的程度上,應理解,本專利的范圍不限于這樣的標準和協(xié)議。例如,用于互聯(lián)網(wǎng)和其它分組交換網(wǎng)絡傳輸(例如,傳輸控制協(xié)議(扣?)/互聯(lián)網(wǎng)協(xié)議(工?)、用戶數(shù)據(jù)報協(xié)議⑴^?)/〗?、超文本標記語言(肌見)、超文本傳輸協(xié)議(肌--))的每個標準代表本領(lǐng)域當前狀態(tài)的例子。這樣的標準周期性地由具有相同的一般功能的、更快和更有效的等效形式取代。因此,具有相同功能的替換標準和協(xié)議是被本專利設想到的并且旨在包括在所附權(quán)利要求的范圍內(nèi)的等效形式。
[0080]本公開的以上描述用于使本領(lǐng)域的任何普通技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對于本領(lǐng)域普通技術(shù)人員來說,本公開的各種修改都是顯而易見的,并且本文定義的一般性原理也可以在不脫離本發(fā)明的精神和保護范圍的情況下應用于其它變形。因此,本發(fā)明并不限于本文所述的實例和設計,而是與本文公開的原理和新穎性特性的最廣范圍相一致。
【權(quán)利要求】
1.一種用于計算機系統(tǒng)的故障恢復方法,其中,所述計算機系統(tǒng)中包括用于管理所述計算機系統(tǒng)與外部設備之間的消息通訊的會話管理進程以及用于對所述外部設備的訪問請求進行處理的數(shù)據(jù)處理進程,其特征在于,所述故障恢復方法包括: a.比較由所述數(shù)據(jù)處理進程發(fā)送給所述會話管理進程的第一消息與所述數(shù)據(jù)處理進程生成的包含數(shù)據(jù)處理結(jié)果的第二消息的消息標識,其中,所述第一消息是基于所述第二消息生成的;以及 b.在所述第一消息與所述第二消息的消息標識不一致的情況下,基于所述第二消息來同步所述第一消息。
2.根據(jù)權(quán)利要求1所述的故障恢復方法,其特征在于,所述方法還包括: c.比較由所述會話管理進程發(fā)送給所述數(shù)據(jù)處理進程的第三消息與所述第一消息的消息標識,其中,所述第三消息接收自所述外部設備且包含所述訪問請求;以及 d.在所述第一消息與所述第三消息的消息標識不一致的情況下,基于所述第三消息來同步所述第一消息。
3.根據(jù)權(quán)利要求1或2所述的故障恢復方法,其特征在于,所述方法還包括: 在生成或接收到消息時,將所述消息記錄在消息數(shù)據(jù)庫中;以及 在同步所述消息時,基于所述消息的消息標識在所述消息數(shù)據(jù)庫中讀取對應的消息。
4.根據(jù)權(quán)利要求1或2所述的故障恢復方法,其特征在于,在所述消息比較步驟之前,還包括: 檢測運行錯誤的進程數(shù)量;以及 如果單個進程錯誤,則重啟所述進程,如果有多個進程錯誤,則執(zhí)行所述消息比較和同步的步驟。
5.根據(jù)權(quán)利要求4所述的故障恢復方法,其特征在于,所述計算機系統(tǒng)包括: 至少一個本地管理器,用于對進程進行管理,其中所述進程配置有線程;以及 域管理器,其與所述至少一個本地管理器耦合,用于管理所述至少一個本地管理器及其進程,并通過與所述進程相關(guān)聯(lián)的線程通信以監(jiān)控所述進程的狀態(tài)。
6.根據(jù)權(quán)利要求5所述的故障恢復方法,其特征在于,所述方法還包括: 檢測運行錯誤的類型;以及 如果所述運行錯誤為軟件錯誤,則執(zhí)行所述檢測運行錯誤的進程數(shù)量的步驟;如果所述運行錯誤為硬件錯誤,則更換運行所述進程的硬件設備。
7.根據(jù)權(quán)利要求5所述的故障恢復方法,其特征在于,所述進程的所述線程用于在所述進程出現(xiàn)運行錯誤時,向所述本地管理器反饋故障報告。
8.根據(jù)權(quán)利要求7所述的故障恢復方法,其特征在于,所述本地管理器用于將所述進程的狀態(tài)和/或所述故障報告發(fā)送至所述域管理器。
9.根據(jù)權(quán)利要求5所述的故障恢復方法,其特征在于,所述域管理器用于當需要停止所述進程時,向所述本地管理器發(fā)送停止消息,所述本地管理器進一步用于向所述進程的所述線程轉(zhuǎn)發(fā)所述停止消息,以使得所述線程根據(jù)所述停止消息來停止所述進程。
10.一種用于計算機系統(tǒng)的故障恢復裝置,其中,所述計算機系統(tǒng)中包括用于管理所述計算機系統(tǒng)與外部設備之間的消息通訊的會話管理進程以及用于對所述外部設備的訪問請求進行處理的數(shù)據(jù)處理進程,其特征在于,包括: 第一裝置,用于比較由所述數(shù)據(jù)處理進程發(fā)送給所述會話管理進程的第一消息與所述數(shù)據(jù)處理進程生成的包含數(shù)據(jù)處理結(jié)果的第二消息的消息標識,其中,所述第一消息是基于所述第二消息生成的;以及 第二裝置,用于在所述第一消息與所述第二消息的消息標識不一致的情況下,基于所述第二消息來同步所述第一消息。
11.根據(jù)權(quán)利要求10所述的故障恢復裝置,其特征在于,所述裝置還包括: 第三裝置,用于比較由所述會話管理進程發(fā)送給所述數(shù)據(jù)處理進程的第三消息與所述第一消息的消息標識,其中,所述第三消息接收自所述外部設備且包含所述訪問請求;以及 第四裝置,用于在所述第一消息與所述第三消息的消息標識不一致的情況下,基于所述第三消息來同步所述第一消息。
12.根據(jù)權(quán)利要求10或11所述的故障恢復裝置,其特征在于,還包括: 消息數(shù)據(jù)庫,用于在生成或接收到消息時,將所述消息記錄其中;并用于在同步所述消息時,基于所述消息的消息標識來提供對應的消息。
13.根據(jù)權(quán)利要求10或11所述的故障恢復裝置,其特征在于,還包括: 第五裝置,用于檢測運行錯誤的進程數(shù)量;以及 第六裝置,用于如果單個進程錯誤,則重啟所述進程,如果有多個進程錯誤,則執(zhí)行所述消息比較和同步的步驟。
14.根據(jù)權(quán)利要求13所述的故障恢復裝置,其特征在于,所述計算機系統(tǒng)包括: 至少一個本地管理器,用于對進程進行管理,其中所述進程配置有線程;以及 域管理器,其與所述至少一個本地管理器耦合,用于管理所述至少一個本地管理器及其進程,并通過與所述進程相關(guān)聯(lián)的線程通信以監(jiān)控所述進程的狀態(tài)。
15.根據(jù)權(quán)利要求14所述的故障恢復裝置,其特征在于,還包括: 第七裝置,用于檢測運行錯誤的類型;以及 第八裝置,用于如果所述運行錯誤為軟件錯誤,則執(zhí)行所述檢測運行錯誤的進程數(shù)量的步驟;如果所述運行錯誤為硬件錯誤,則更換運行所述進程的硬件設備。
16.根據(jù)權(quán)利要求14所述的故障恢復裝置,其特征在于,所述進程的所述線程用于在所述進程出現(xiàn)運行錯誤時,向所述本地管理器反饋故障報告。
17.根據(jù)權(quán)利要求16所述的故障恢復裝置,其特征在于,所述本地管理器用于將所述進程的狀態(tài)和/或所述故障報告發(fā)送至所述域管理器。
18.根據(jù)權(quán)利要求14所述的故障恢復裝置,其特征在于,所述域管理器用于當需要停止所述進程時,向所述本地管理器發(fā)送停止消息,所述本地管理器進一步用于向所述進程的所述線程轉(zhuǎn)發(fā)所述停止消息,以使得所述線程根據(jù)所述停止消息來停止所述進程。
【文檔編號】G06F11/07GK104346233SQ201410538090
【公開日】2015年2月11日 申請日期:2014年10月13日 優(yōu)先權(quán)日:2014年10月13日
【發(fā)明者】王垚, 俞森, 李國榮 申請人:中國外匯交易中心