TWI447574B - 記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統 - Google Patents

記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統 Download PDF

Info

Publication number
TWI447574B
TWI447574B TW099146061A TW99146061A TWI447574B TW I447574 B TWI447574 B TW I447574B TW 099146061 A TW099146061 A TW 099146061A TW 99146061 A TW99146061 A TW 99146061A TW I447574 B TWI447574 B TW I447574B
Authority
TW
Taiwan
Prior art keywords
record
transaction
main program
state
crash
Prior art date
Application number
TW099146061A
Other languages
English (en)
Other versions
TW201227264A (en
Inventor
Rebecca Chen
Jeffrey Liu
Jim Yu
Joey Tseng
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Priority to TW099146061A priority Critical patent/TWI447574B/zh
Priority to US13/311,168 priority patent/US8719622B2/en
Publication of TW201227264A publication Critical patent/TW201227264A/zh
Application granted granted Critical
Publication of TWI447574B publication Critical patent/TWI447574B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Description

記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統
本發明係在資訊設備中記錄崩潰以及預防崩潰的方法。
相對於通用型(General Purpose)的電腦裝置,資訊設備(Appliance)一般係根據特定目的或特定服務而設計,而具有較高的效能。
資訊設備,例如無線網路橋接器(Access Point)、數位電視機上盒(set top box)、網路檔案分享(file sharing)伺服器,可根據特定目的而進行特定的交易(transaction)。較複雜資訊設備可進一步可參考IBMWebSphereDataPower Series SOA Appliances或TivoliISS Appliances)(「IBM」、「WebSphere」、「Tivoli」為International Business Machine公司在美國及/或其他國家的註冊商標)。
相較於通用型電腦裝置,「資訊設備」顯得較為「封閉」,也就是隨著其所設計的目的與服務,採用特定的作業系統與應用程式(或驅動程式)。若「資訊設備」發生系統崩潰,通常使用者無法瞭解崩潰發生的原因,因此也無法自行進行修復而僅能重新開機,但這仍然無法避免因為相同的原因而崩潰再次發生。
會導致資訊設備發生系統崩潰的情況有許許多多種,本發明一方面即在於:提出一種製作崩潰報告的方法,藉由記錄資訊設備執行交易所經歷的狀態以及所進行的堆疊,將一特定系統崩潰記載於一崩潰報告中,以供辨別。
藉此,本發明另一方面即在於:根據上述的崩潰報告,避免類似的系統崩潰再次發生在相同的資訊設備中,即所謂重複崩潰(Repeated Crash)。
此外,通常相同型號的資訊設備會具有相同的硬體及軟體/韌體,且一般來說無法更動,因此在一台資訊設備上會發生系統崩潰的情況,換成另一台相同型號的資訊設備也會發生系統崩潰。若在一資訊設備的叢集中,某一資訊設備的崩潰報告可傳送給其他的資訊設備,因此其他的資訊設備可藉此預防類似的系統崩潰,即所謂級聯崩潰(Cascaded Crash)。
根據本發明一實施例,一種在一資訊設備中記錄崩潰的方法,包含:
● 執行一主程式以進行一交易,該交易使該主程式依序經歷至少一個狀態,每一狀態依序包含至少一個堆疊,
● 執行一監控程式,產生一狀態紀錄,以依序記錄該主程式因應該交易所經歷的所有狀態;因應該主程式進行該交易而發生一崩潰,產生一錯誤紀錄,以記錄該主程式在一最近狀態中所進行的所有堆疊;以及
● 根據該狀態記錄與該錯誤紀錄,產生一崩潰報告。
根據本發明另一實施例,一種在一或多個資訊設備中預防崩潰的方法,包含以下步驟:
● 執行一主程式以進行一第一交易,該第一交易使該主程式依序經歷至少一個狀態,每一狀態依序包含至少一個堆疊:
● 執行一監控程式,產生一第一狀態紀錄,以依序記錄該主程式因應該第一交易所經歷的所有狀態;
● 因應該主程式進行該第一交易而發生一崩潰,產生一錯誤紀錄,以記錄該主程式在一最近狀態中所進行的所有堆疊;
● 根據該第一狀態記錄與該錯誤紀錄,產生一崩潰報告;
● 執行該主程式以進行一第二交易,該第二交易使該主程式依序經歷至少一個狀態,每一狀態依序包含至少一個堆疊:
● 執行該監控程式,產生一第二狀態紀錄,以依序記錄該主程式因應該第二交易所經歷的所有狀態;
● 比對該崩潰報告與該第二狀態紀錄,若該第二狀態紀錄符合該崩潰報告中的該第一狀態記錄,則:
■ 該監控程式產生一堆疊紀錄,以記錄該主程式因應該第二交易而在一最近狀態後所進行的所有堆疊;
■ 比對該崩潰報告與該堆疊紀錄,若該堆疊紀錄符合該崩潰報告中的該錯誤紀錄,則取消該第二交易。
簡言之,上述實施例係藉由即時記錄資訊設備執行交易所經歷的程式狀態以及所進行的堆疊,並與前述的崩潰報告進行比對,而避免資訊設備再次經歷相同的狀態與堆疊,而再次崩潰。
本說明書中所提及的特色、優點、或類似表達方式並不表示,可以本發明實現的所有特色及優點應在本發明之任何單一的具體實施例內。而是應明白,有關特色及優點的表達方式是指結合具體實施例所述的特定特色、優點、或特性係包含在本發明的至少一具體實施例內。因此,本說明書中對於特色及優點、及類似表達方式的論述與相同具體實施例有關,但亦非必要。
此外,可以任何合適的方式,在一或多個具體實施例中結合本發明所述特色、優點、及特性。相關技術者應明白,在沒有特定具體實施例之一或多個特定特色或優點的情況下,亦可實施本發明。在其他例子中應明白,特定具體實施例中的其他特色及優點可能未在本發明的所有具體實施例中出現。
參考以下說明及隨附申請專利範圍或利用如下文所提之本發明的實施方式,即可更加明瞭本發明的這些特色及優點。
本說明書中「一具體實施例」或類似表達方式的引用是指結合該具體實施例所述的特定特色、結構、或特性係包括在本發明的至少一具體實施例中。因此,在本說明書中,「在一具體實施例中」及類似表達方式之用語的出現未必指相同的具體實施例。
熟此技藝者當知,本發明可實施為資訊設備、方法或作為電腦程式產品之電腦可讀媒體。因此,本發明可以實施為各種形式,例如完全的硬體實施例、完全的軟體實施例(包含韌體、常駐軟體、微程式碼等),或者亦可實施為軟體與硬體的實施形式,在以下會被稱為「電路」、「模組」或「系統」。此外,本發明亦可以任何有形的媒體形式實施為電腦程式產品,其具有電腦可使用程式碼儲存於其上。
一個或更多個電腦可使用或可讀取媒體的組合都可以利用。舉例來說,電腦可使用或可讀取媒體可以是(但並不限於)電子的、磁的、光學的、電磁的、紅外線的或半導體的系統、裝置、設備或傳播媒體。更具體的電腦可讀取媒體實施例可以包括下列所示(非限定的例示):由一個或多個連接線所組成的電氣連接、可攜式的電腦磁片、硬碟機、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、可攜式光碟片(CD-ROM)、光學儲存裝置、傳輸媒體(例如網際網路(Internet)或內部網路(intranet)之基礎連接)、或磁儲存裝置。需注意的是,電腦可使用或可讀取媒體更可以為紙張或任何可用於將程式列印於其上而使得該程式可以再度被電子化之適當媒體,例如藉由光學掃描該紙張或其他媒體,然後再編譯、解譯或其他合適的必要處理方式,然後可再度被儲存於電腦記憶體中。在本文中,電腦可使用或可讀取媒體可以是任何用於保持、儲存、傳送、傳播或傳輸程式碼的媒體,以供與其相連接的指令執行系統、裝置或設備來處理。電腦可使用媒體可包括其中儲存有電腦可使用程式碼的傳播資料訊號,不論是以基頻(baseband)或是部分載波的型態。電腦可使用程式碼之傳輸可以使用任何適體的媒體,包括(但並不限於)無線、有線、光纖纜線、射頻(RF)等。
用於執行本發明操作的電腦程式碼可以使用一種或多種程式語言的組合來撰寫,包括物件導向程式語言(例如Java、Smalltalk、C++或其他類似者)以及傳統程序程式語言(例如C程式語言或其他類似的程式語言)。程式碼可以獨立軟體套件的形式完整的於使用者的電腦上執行或部分於使用者的電腦上執行,或部分於使用者電腦而部分於遠端電腦。
於以下本發明的相關敘述會參照依據本發明具體實施例之資訊設備、方法及電腦程式產品之流程圖及/或方塊圖來進行說明。當可理解每一個流程圖及/或方塊圖中的每一個方塊,以及流程圖及/或方塊圖中方塊的任何組合,可以使用電腦程式指令來實施。這些電腦程式指令可供通用型電腦或特殊電腦的處理器或其他可程式化資料處理裝置所組成的機器來執行,而指令經由電腦或其他可程式化資料處理裝置處理以便實施流程圖及/或方塊圖中所說明之功能或操作。
這些電腦程式指令亦可被儲存在電腦可讀取媒體上,以便指示電腦或其他可程式化資料處理裝置來進行特定的功能,而這些儲存在電腦可讀取媒體上的指令構成一製成品,其內包括之指令可實施流程圖及/或方塊圖中所說明之功能或操作。
電腦程式指令亦可被載入到電腦上或其他可程式化資料處理裝置,以便於電腦或其他可程式化裝置上進行一系統操作步驟,而於該電腦或其他可程式化裝置上執行該指令時產生電腦實施程序以達成流程圖及/或方塊圖中所說明之功能或操作。
其次,請參照圖1A至圖5,在圖式中顯示依據本發明各種實施例的資訊設備、方法及電腦程式產品可實施的架構、功能及操作之流程圖及方塊圖。因此,流程圖或方塊圖中的每個方塊可表示一模組、區段、或部分的程式碼,其包含一個或多個可執行指令,以實施指定的邏輯功能。另當注意者,某些其他的實施例中,方塊所述的功能可以不依圖中所示之順序進行。舉例來說,兩個圖示相連接的方塊事實上亦可以同時執行,或依所牽涉到的功能在某些情況下亦可以依圖示相反的順序執行。此外亦需注意者,每個方塊圖及/或流程圖的方塊,以及方塊圖及/或流程圖中方塊之組合,可藉由基於特殊目的硬體的系統來實施,或者藉由特殊目的硬體與電腦指令的組合,來執行特定的功能或操作。
圖1A之方塊圖係顯示一實施例中資訊設備10。在一實施例中,資訊設備10可基於DataPower Series SOA Appliances或ISS的硬體架構進一步延伸變化。特別地,資訊設備10具有記憶體12、處理器14、與監控模組16。記憶體12可為電腦磁片、硬碟機、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除程式化唯讀記憶體(EPROM或快閃記憶體)、光碟片、光學儲存裝置、或磁儲存裝置。記憶體12用以存放主程式AP之程式碼,而處理器14係存取記憶體12,以執行主程式AP。
圖1B則顯示處理器14執行主程式AP進行交易的狀態(states或program states,參見http://http://en.wikipedia.org/wiki/Program_state)以及堆疊(stacks、call stacks、或process stacks,參見http://http://en.wikipedia.org/wiki/call_stack),並以IBM® WebSphere® DataPower Series SOA Appliances的使用情境為範例加以說明。需說明的是,所謂「狀態」,係指概念上(conceptual)程式進行的狀態(status),而可由程式人員預先設定,而「堆疊」則可與「功能(function)」相對應。
在圖1B中,為進行此交易,主程式AP依序經歷三個狀態,即「程序標頭(Process Header)」、「程序負載(Process Payload)」、與「保存於資料庫(Persist in Database)」。在「程序標頭」狀態中,依序進行「ParseGeneralHeader」與「ParseDateHeader」堆疊;在「程序負載」狀態中,其依序進行「ProcessMIMEBody」與「ProcessMIMEHdr」堆疊;在「保存於資料庫」狀態中,其依序進行「InitODBCConn」、「SaveData」與「CloseConn」堆疊。
回到圖1A,監控模組16係用以監控主程式AP的狀態與堆疊,進一步細節將詳述於後。在一實施例中,監控模組16係主要實施為硬體模組,具有自身的處理器與記憶體(未圖示),以監控主程式的運作。但在其他的實施例中,監控模組16係軟體模組,亦即藉由處理器14執行存放在記憶體12中的監控程式SAP,以監控主程式的運作。需說明的是,習知的監控程式SAP(或監控模組16)可用來監控主程式的watchdog timer(參照http://en.wikipedia.org/wiki/Watchdog_timer),而本發明的監控程式 SAP(或監控模組16)可進一步監控主程式AP的狀態與堆疊。
圖2之方塊圖係顯示一實施例中電腦叢集100,其至少具有兩台以上的資訊設備,例如資訊設備10、10a、與10b。資訊設備10a與10b具有與圖1所示資訊設備10相同的軟/硬體架構,可執行相同的主程式AP以及監控程式SAP,且透過網路(例如LAN、WAN、或Internet)或其他資料連結的方式連結彼此。在其他實施例中,電腦叢集100中的資訊設備10、10a、與10b係屬於相同的領域(Realm),而預先根據相同的驗證機制進行驗證,並且依循相同的規則進行管理。關於「領域」,可參考同屬申請人之美國專利5,544,322中相關的說明。此外,電腦叢集100中的資訊設備10、10a、與10b中可運作為叢集節點(clustering node)或是互為待命節點(standby node),其中當作為叢集節點時,資訊設備10、10a、與10b同時運作以分擔負載(load balancing),而互為待命節點(standby node)時,則當其中一個資訊設備(例如資訊設備10a)崩潰時,另一個資訊設備(例如資訊設備10b)才啟動運作。進一步如圖2所示,當其中一個資訊設備(例如資訊設備10)崩潰時,其監控程式SAP產生一崩潰報告CR,並傳送給其他的資訊設備(例如資訊設備10a或10b)的監控程式SAP,其他的資訊設備可據此預防級聯崩潰,進一步細節將詳述於下。
圖3則顯示根據本發明實施例之方法流程圖,係說明資訊設備10正常進行交易而沒有發生崩潰的狀況。在圖3的左側係主程式AP所進行的步驟,在右側則為監控程式SAP(或監控模組16)所進行的步驟。
●步驟300:主程式AP接收到進行交易的請求,而主 程式AP會對此交易指定一交易識別碼(Transaction ID、以下簡稱TID)。
●步驟350:監控程式SAP根據此TID,產生此交易專屬之交易紀錄(Transaction Information Record、以下簡稱TIR)。
●步驟302:主程式AP開始在一當下狀態(例如圖1B所示之「程序標頭」狀態)下運作,並告知監控程式SAP。
●步驟352:相對應步驟302,監控程式SAP會以當下狀態(例如「程序標頭」)更新到TIR中的狀態紀錄。而在此實施例中,監控程式SAP並不需要知道主程式AP在此狀態下進行哪些堆疊(即例如圖1B所示之「ParseGeneralHeader」與「ParseDateHeader」堆疊)。
●步驟304:主程式AP判斷是否有下一個狀態,若是,則再次進行到步驟302,將此下一個狀態(例如圖1B所示之「程序負載」狀態)作為當下狀態運作,並告知監控程式SAP;若否,則到步驟306。
●步驟306:主程式AP順利完成交易,清空所佔據的交易資源。
●步驟356:相對應步驟306,監控程式SAP清除TIR。
圖4則顯示根據本發明實施例之方法流程圖,係說明主程式AP在某一狀態下進行到某一堆疊而崩潰後,產生崩潰報告CR的步驟。
●步驟400:因應主程式AP的崩潰,資訊設備10產生崩潰發生時的磁心傾印(core dump)。另外,關於磁心傾印 (core dump)的說明及產生方式,亦可http://http://en.wikipedia.org/wiki/Core_dump的說明,在此以引用的方式併入本文。
●步驟402:監控程式SAP(或監控模組16)從磁心傾印中擷取出此交易的TID。
●步驟404:監控程式SAP根據TID找出相對應的TIR。
●步驟406:監控程式SAP根據磁心傾印以及TIR,產生崩潰報告CR。需說明的是,磁心傾印中與本實施例相關的部份係為最近狀態(也就是崩潰發生的狀態)下的所進行的堆疊。以圖1B為例,如果主程式AP在「程序負載」狀態下發生崩潰,則磁心傾印會記錄有「程序負載」狀態下導致崩潰的堆疊紀錄。而監控程式SAP主要是需要此導致崩潰的堆疊紀錄來製作崩潰報告CR。
●步驟408:監控程式SAP將崩潰報告CR儲存至記憶體12,若有需要則將崩潰報告CR傳送給資訊設備10a或10b的監控程式SAP(或監控模組16)。
圖5則顯示根據本發明實施例之方法流程圖,係說明根據圖4中步驟408所儲存或所傳送的崩潰報告CR,在相同的資訊設備(例如資訊設備10)上預防重複崩潰或在其他的資訊設備(例如資訊設備10a或10b)上預防級聯崩潰的步驟。在圖5的左側係主程式AP所進行的步驟,在右側則為監控程式SAP(或監控模組16)所進行的步驟。
此外,相對於圖3正常運作的方式,圖5的流程係在一「限制模式(restricted mode)下」運作,需要額外步驟去參照崩潰報告, 以達成預防崩潰的目的。但這些額外的步驟,可能造成系統的效率降低,因此使用者可視情況來決定是否進入此「限制模式」。
●步驟500:主程式AP接收到進行一新交易的請求,而主程式AP會對此新交易指定一交易識別碼TIDn,如同步驟300。
●步驟550:監控程式SAP根據此TIDn,產生此新交易專屬之交易記錄TIRn。需說明的是,圖3中所述之TIR與步驟550中的TIRn有所不同,相較之下,前者(在正常模式下)僅具有狀態轉換(state transition)的紀錄(即狀態的歷程),而後者(在限制模式下)除了狀態紀錄外,尚具有每一狀態下的堆疊紀錄。
●步驟502:主程式AP開始在一當下狀態下運作,並告知監控程式SAP。
●步驟552:相對應步驟302,監控程式SAP會以當下狀態更新到TIRn中的狀態紀錄。
●步驟504:主程式AP開始在當下狀態中進行一當下堆疊((即例如圖1B所示之「ParseGeneralHeader」堆疊),並告知監控程式SAP。
●步驟554:相對應步驟502,監控程式SAP會以當下堆疊更新到TIRn中此當下狀態的堆疊紀錄。
●步驟556:監控程式SAP判斷TIRn與崩潰報告CR是否相符,其中TIRn中的狀態紀錄可先跟崩潰報告CR中TIR的狀態紀錄先比較,若無相符,則可判斷TIRn與崩潰報告CR並無相符,進入到步驟508;若TIRn中的狀態紀錄與崩潰報告CR中TIR的狀態紀 錄相符,則再比較TIRn中當下狀態下的堆疊紀錄與崩潰報告CR中磁心傾印所記錄的堆疊紀錄,若無相符,則可判斷TIRn與崩潰報告CR並無相符,進入到步驟508;若相符,則進入到步驟510。
●步驟508:主程式AP判斷是否有下一個狀態或下一個堆疊,若有下一個狀態,則再次進行到步驟502;若有下一個堆疊,再次進行到步驟504;若否,則到步驟512。
●步驟510:主程式AP取消此新交易,清空所佔據的交易資源。
●步驟512:主程式AP順利完成此新交易,清空所佔據的交易資源。
●步驟560:相對應步驟510或512,監控程式SAP清除TIRn。
另外關於步驟556中判斷TIRn與崩潰報告CR是否相符的作法,本發明並不欲加以限制。在一實施例中,由於在資訊設備中,進行一特定交易所需要的狀態及堆疊,一般來說都可預先定義,因此可輕易地對每個狀態及堆疊,給定一不同整數作為代號或是可給定一特定名稱,藉此可輕易地比對狀態(或堆疊)是否相符。
在不脫離本發明精神或必要特性的情況下,可以其他特定形式來體現本發明。應將所述具體實施例各方面僅視為解說性而非限制性。因此,本發明的範疇如隨附申請專利範圍所示而非如前述說明所示。所有落在申請專利範圍之等效意義及範圍內的變更 應視為落在申請專利範圍的範疇內。
10、10a、10b‧‧‧資訊設備
12‧‧‧記憶體
14‧‧‧處理器
16‧‧‧監控模組
100‧‧‧電腦叢集
AP‧‧‧主程式
CR‧‧‧崩潰報告
SAP‧‧‧監控程式
TID、TIDn‧‧‧交易識別碼
TIR、TIRn‧‧‧交易紀錄
為了立即瞭解本發明的優點,請參考如附圖所示的特定具體實施例,詳細說明上文簡短敘述的本發明。在瞭解這些圖示僅描繪本發明的典型具體實施例並因此不將其視為限制本發明範疇的情況下,參考附圖以額外的明確性及細節來說明本發明,圖式中:圖1A為一種依據本發明一具體實施例之資訊設備示意圖;圖1B為一種依據本發明一具體實施例之主程式進行交易的狀態與堆疊示意圖;圖2為一種依據本發明一具體實施例之電腦叢集示意圖;圖3為一種依據本發明一具體實施例之方法流程圖;圖4為一種依據本發明一具體實施例之方法流程圖;圖5為一種依據本發明一具體實施例之方法流程圖。

Claims (15)

  1. 一種在一資訊設備中記錄崩潰的方法,包含以下步驟:(a)執行一主程式以進行一交易,該交易使該主程式依序經歷至少一個狀態,每一狀態依序包含至少一個堆疊:(b)執行一監控程式,產生一狀態紀錄(TIR),以依序記錄該主程式因應該交易所經歷的所有狀態;(c)因應該主程式進行該交易而發生一崩潰,該監控程式取得一錯誤紀錄,該錯誤紀錄記錄該主程式在一最近狀態中所進行的所有堆疊;以及(d)根據該狀態記錄與該錯誤紀錄,產生一崩潰報告。
  2. 如請求項1之方法,其中該主程式指定該交易一交易識別碼(ID),並加入該交易識別碼至該崩潰報告中。
  3. 如請求項1之方法,其中步驟(b)包含:因應該主程式每經歷一個狀態,該監控程式更新該狀態紀錄。
  4. 如請求項1之方法,其中更包含從該崩潰發生時之一磁心傾印(core dump)中獲得該錯誤紀錄。
  5. 一種電腦可讀媒體,儲存有一程式碼,供於一資訊設備上執行時進行如請求項1至4中任一項之方法。
  6. 一種在一或多個資訊設備中預防崩潰的方法,包含以下步驟:(a)執行一主程式以進行一第一交易,該第一交易使該主程式依序經歷至少一個狀態,每一狀態依序包含至少一個堆疊: (b)執行一監控程式,產生一第一狀態紀錄(TIR),以依序記錄該主程式因應該第一交易所經歷的所有狀態;(c)因應該主程式進行該第一交易而發生一崩潰,該監控程式取得一錯誤紀錄,該錯誤紀錄記錄該主程式在一最近狀態中所進行的所有堆疊;(d)根據該第一狀態記錄與該錯誤紀錄,產生一崩潰報告;(e)執行該主程式以進行一第二交易,該第二交易使該主程式依序經歷至少一個狀態,每一狀態依序包含至少一個堆疊:(f)執行該監控程式,產生一第二狀態紀錄(TIR),以依序記錄該主程式因應該第二交易所經歷的所有狀態;(g)比對該崩潰報告與該第二狀態紀錄,若該第二狀態紀錄符合該崩潰報告中的該第一狀態記錄,則:(h)該監控程式產生一堆疊紀錄,以記錄該主程式因應該第二交易而在一最近狀態後所進行的所有堆疊;(i)比對該崩潰報告與該堆疊紀錄,若該堆疊紀錄符合該崩潰報告中的該錯誤紀錄,則取消該第二交易。
  7. 如請求項6之方法,其中步驟(f)包含:在該主程式因應該第二交易每經歷一個狀態後,更新該第二狀態紀錄(TIR);其中步驟(g)包含:在該主程式每經歷一個狀態後,比對該崩潰報告與在步驟(f)中所更新的該第二狀態紀錄。
  8. 如請求項6之方法,其中步驟(h)更包含:在該主程式因應該第二交易每進行一個堆疊後,更新該堆疊紀錄;其中步驟(i)包含:在該主程式每進行一個堆疊後,比對該崩潰報告與在步驟(h)中所更新的該堆疊紀錄。
  9. 如請求項6之方法,其中更包含從該崩潰發生時之一磁心傾印(core dump)中獲得該錯誤紀錄。
  10. 如請求項6之方法,其中步驟(a)-(d)係實施在一第一資訊設備上,步驟(e)-(i)係實施在一第二資訊設備上,而在步驟(e)前,更包含:將該崩潰報告從該第一資訊設備傳送至該第二資訊設備。
  11. 如請求項10之方法,在步驟(a)-(i)前,更包含:將該第一資訊設備與該第二資訊設備設置於一電腦叢集(cluster)中。
  12. 一種電腦可讀媒體,儲存有一程式碼,供於一資訊設備上執行時進行如請求項6至9中任一項之方法。
  13. 一種記錄崩潰的資訊設備,包含:一記憶體;一處理器,用以執行一主程式以進行一第一交易,該交易使該主程式依序經歷至少一個狀態,每一狀態依序包含至少一個堆疊;一監控模組,因應該主程式進行該第一交易而發生一崩潰,產生一第一狀態紀錄(TIR),以依序記錄該主程式因應該交易所經歷的所有狀態,並且根據該資訊設備之一磁心傾印中取得一錯誤紀錄,該錯誤紀錄係記錄該主程式在一最近狀態中所進行的所有堆疊;其中該監控模組進一步根據該狀態記錄與該錯誤紀錄,產生 一崩潰報告,並儲存至該記憶體。
  14. 如請求項13之資訊設備,其中:該處理器更用以執行該主程式以進行一第二交易,該第二交易依序包含至少一個狀態,每一狀態依序包含至少一個堆疊;該監控模組用以進行下列步驟:產生一第二狀態紀錄(TIR),以依序記錄該主程式因應該第二交易所經歷的所有狀態;比對該崩潰報告與該第二狀態紀錄,若該第二狀態紀錄符合該崩潰報告中的該第一狀態記錄,則:該監控程式產生一堆疊紀錄,以記錄該主程式因應該第二交易而在一最近狀態後所進行的所有堆疊;比對該崩潰報告與該堆疊紀錄,若該堆疊紀錄符合該崩潰報告中的該錯誤紀錄,則取消該第二交易。
  15. 一種預防崩潰的系統,包含一第一資訊設備與一第二資訊設備,其中:該第一資訊設備包含:一第一處理器,用以執行一第一主程式以進行一第一交易,該交易使該主程式依序經歷至少一個狀態,每一狀態依序包含至少一個堆疊;一第一監控模組,因應該第一主程式進行該第一交易而發生一崩潰,產生一第一狀態紀錄(TIR),以依序記錄該第一主程式因應該交易所經歷的所有狀態,並且根據該第一資訊設備之一磁心傾印中取得一錯誤紀錄,該錯誤紀錄係記錄記錄該第一主程式在一最近狀態中所進行的 所有堆疊;其中該第一監控模組進一步根據該狀態記錄與該錯誤紀錄,產生一崩潰報告,並傳送該崩潰報告至該第二資訊設備;該第二資訊設備包含:一記憶體,用以儲存該第一資訊設備所傳送之該崩潰報告;一第二處理器,用以執行一第二主程式以進行一第二交易,該第二交易依序包含至少一個狀態,每一狀態依序包含至少一個堆疊;一第二監控模組,該第二監控模組用以進行下列步驟:產生一第二狀態紀錄(TIR),以依序記錄該第二主程式因應該第二交易所經歷的所有狀態;比對該崩潰報告與該第二狀態紀錄,若該第二狀態紀錄符合該崩潰報告中的該第一狀態記錄,則:該第二監控程式產生一堆疊紀錄,以記錄該第二主程式因應該第二交易而在一最近狀態後所進行的所有堆疊;比對該崩潰報告與該堆疊紀錄,若該堆疊紀錄符合該崩潰報告中的該錯誤紀錄,則取消該第二交易。
TW099146061A 2010-12-27 2010-12-27 記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統 TWI447574B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW099146061A TWI447574B (zh) 2010-12-27 2010-12-27 記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統
US13/311,168 US8719622B2 (en) 2010-12-27 2011-12-05 Recording and preventing crash in an appliance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW099146061A TWI447574B (zh) 2010-12-27 2010-12-27 記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統

Publications (2)

Publication Number Publication Date
TW201227264A TW201227264A (en) 2012-07-01
TWI447574B true TWI447574B (zh) 2014-08-01

Family

ID=46318530

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099146061A TWI447574B (zh) 2010-12-27 2010-12-27 記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統

Country Status (2)

Country Link
US (1) US8719622B2 (zh)
TW (1) TWI447574B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2503439A (en) * 2012-06-26 2014-01-01 Ibm Method of restarting a software system that has unintentional shutdown.
US9519564B1 (en) 2012-09-28 2016-12-13 EMC IP Holding Company LLC Trace saving intervals
TW201513610A (zh) 2013-09-30 2015-04-01 Ibm 在一資訊設備叢集中依後端應用系統之資源利用狀態處理輸入異動之協商方法、裝置與電腦程式產品
US10013299B2 (en) 2015-09-16 2018-07-03 Microsoft Technology Licensing, Llc Handling crashes of a device's peripheral subsystems
CN110109770A (zh) * 2019-05-06 2019-08-09 Oppo广东移动通信有限公司 调试方法、装置、电子设备及介质
CN111125015B (zh) * 2019-12-20 2023-04-14 北京百度网讯科技有限公司 用于dump文件分类的方法、装置、终端和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW378291B (en) * 1998-11-02 2000-01-01 Inventec Corp Method of recovering computer operating system (OS) and tool therefore
TW200741468A (en) * 2006-04-17 2007-11-01 Pigeon Point Systems Disaggregated star platform management bus architecture system
US7526758B2 (en) * 2005-06-30 2009-04-28 Microsoft Corporation Execution failure investigation using static analysis
US20090187787A1 (en) * 2008-01-17 2009-07-23 International Business Machines Corporation Transfer of data from positional data sources to partitioned databases in restartable environments

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7002975B2 (en) 2000-08-11 2006-02-21 Texas Instruments Incorporated Multiprocessor network node failure detection and recovery
US6918051B2 (en) 2001-04-06 2005-07-12 International Business Machines Corporation Node shutdown in clustered computer system
US7139925B2 (en) 2002-04-29 2006-11-21 Sun Microsystems, Inc. System and method for dynamic cluster adjustment to node failures in a distributed data system
US7089323B2 (en) 2002-06-21 2006-08-08 Microsoft Corporation Method for multicasting a message on a computer network
US20040054991A1 (en) * 2002-09-17 2004-03-18 Harres John M. Debugging tool and method for tracking code execution paths
US7246156B2 (en) 2003-06-09 2007-07-17 Industrial Defender, Inc. Method and computer program product for monitoring an industrial network
US20050066235A1 (en) * 2003-09-24 2005-03-24 International Business Machines Corporation Automated fault finding in repository management program code
US7551552B2 (en) 2003-10-17 2009-06-23 Microsoft Corporation Method for providing guaranteed distributed failure notification
US7562351B2 (en) 2003-12-10 2009-07-14 Sap Ag Postprocessing office method and system
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US7840946B2 (en) * 2006-06-02 2010-11-23 International Business Machines Corporation System and method for matching a plurality of ordered sequences with applications to call stack analysis to identify known software problems
EP2137905B1 (en) 2007-03-23 2012-07-04 BRITISH TELECOMMUNICATIONS public limited company Fault location
US8607098B2 (en) * 2011-05-26 2013-12-10 International Business Machines Corporation Generating appropriately sized core files used in diagnosing application crashes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW378291B (en) * 1998-11-02 2000-01-01 Inventec Corp Method of recovering computer operating system (OS) and tool therefore
US7526758B2 (en) * 2005-06-30 2009-04-28 Microsoft Corporation Execution failure investigation using static analysis
TW200741468A (en) * 2006-04-17 2007-11-01 Pigeon Point Systems Disaggregated star platform management bus architecture system
US20090187787A1 (en) * 2008-01-17 2009-07-23 International Business Machines Corporation Transfer of data from positional data sources to partitioned databases in restartable environments

Also Published As

Publication number Publication date
US20120166893A1 (en) 2012-06-28
TW201227264A (en) 2012-07-01
US8719622B2 (en) 2014-05-06

Similar Documents

Publication Publication Date Title
US10701177B2 (en) Automatic data request recovery after session failure
CN108681565B (zh) 区块链数据并行处理方法、装置、设备和存储介质
TWI447574B (zh) 記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統
CN103038788B (zh) 提供多个网络资源
CN104205060B (zh) 提供用于ha集群的管理程序的基于应用的监控及恢复
KR20190107664A (ko) 스마트 계약 처리 방법 및 장치
JP2021521544A (ja) 取引処理
EP3119034A1 (en) Fault handling method, device and system based on network function virtualization
CN109788068B (zh) 心跳状态信息上报方法、装置和设备及计算机存储介质
US11102322B2 (en) Data processing method and apparatus, server, and controller
CN107066300B (zh) 一种存储设备的固件升级方法和存储设备
CN109871290B (zh) 应用于Java的调用堆栈追踪方法、装置和存储介质
CN103973470A (zh) 用于无共享集群的集群管理方法和设备
WO2019204429A1 (en) Backup and restore validation
CN102880478B (zh) 软件更新方法
JP2019504415A (ja) データ格納サービス処理方法及び装置
CN110543357B (zh) 管理应用程序对象的方法,相关装置及系统
CN111324368B (zh) 一种数据共享方法及服务器
CN114024822A (zh) 基于区块链的物联网设备管理方法、设备、服务器及介质
CN108121580A (zh) 应用程序通知服务的实现方法及装置
US20140129689A1 (en) Communication device
CN111930781B (zh) 对缓存数据库的数据请求的处理方法和装置
US20220172825A1 (en) Medical scanner application platform
US20220164230A1 (en) Distributed medical software platform
US11150942B2 (en) Communication device and communication method used in distributed computing environment

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees