亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

錯誤信息記錄方法及裝置與流程

文檔序號:12063547閱讀:233來源:國知局
錯誤信息記錄方法及裝置與流程
本發(fā)明涉及計算機系統(tǒng)
技術(shù)領(lǐng)域
,尤其涉及一種錯誤信息記錄方法及裝置。
背景技術(shù)
:在生產(chǎn)維護中,最大的問題就是不能盡快定位生產(chǎn)問題。生產(chǎn)問題的定位需要基于生產(chǎn)上所保留的信息,而保留的信息通常存在信息量少和缺少錯誤來源的問題。一方面,對于大型系統(tǒng),特別是中國大型銀行系統(tǒng)等服務(wù)于十幾億客戶的系統(tǒng),保留的信息必須盡可能少,所以在生產(chǎn)上,對于程序運行相關(guān)的跟蹤信息都會被關(guān)閉掉,程序出錯返回到客戶端的信息一般是由錯誤碼構(gòu)成,即使有附加信息,也會非常少,從而導致保留的信息量少;另一方面,程序的結(jié)構(gòu)是模塊間網(wǎng)狀調(diào)用,程序運行時也會出現(xiàn)多層邏輯的復雜調(diào)用關(guān)系,所以后臺處理邏輯非常復雜,即使可以設(shè)計在出錯時,記錄相關(guān)的信息,僅憑出錯點的現(xiàn)場信息,也無法讓維護人員理解錯誤出現(xiàn)的原因。像銀行主機這樣的大型服務(wù)系統(tǒng),對錯誤信息的處理方法一般都是向客戶端報送錯誤碼和少量的錯誤信息。雖然后臺會有監(jiān)控機制,但只有在持續(xù)發(fā)生嚴重錯誤時才會開啟。對于向客戶端報送錯誤信息:在后臺服務(wù)端發(fā)生錯誤時,會有標準的錯誤碼和少量的附加信息發(fā)送給客戶端,客戶端根據(jù)錯誤碼對照表和附加的信息解析對應的錯誤,但對于非客戶原因引起的系統(tǒng)錯誤,比如系統(tǒng)邏輯錯誤或者數(shù)據(jù)庫錯誤等,則一般沒有完整的錯誤碼對照,比如每個中間件或數(shù)據(jù)庫本身,就會有非常復雜的報錯機制,而這些通常會以比較簡單的方式反饋給客戶,因為即使反饋給客戶,客戶也無法理解和處理。對于服務(wù)系統(tǒng)內(nèi)部錯誤監(jiān)控:在系統(tǒng)內(nèi)部設(shè)置監(jiān)控機制,具體的環(huán)境有,記錄每個交易的輸入輸出信息;可根據(jù)柜員或渠道輸出程序內(nèi)設(shè)置的跟蹤信息,當某個渠道或柜員持續(xù)出現(xiàn)錯誤時,可根據(jù)柜員或渠道打開跟蹤設(shè)置,系統(tǒng)把程序的跟蹤信息輸出到流水中,供維護人員使用;對于報錯,記錄程序當時相關(guān)信息,比如模塊名、系統(tǒng)環(huán)境信息。維護人員可根據(jù)這些環(huán)境信息定位當時的錯誤情況,這是一種快照機制。向客戶端報錯機制的主要目的是向客戶解釋客戶的操作邏輯錯誤,比如本來已經(jīng)凍結(jié)的賬戶,又去取款,那么會提示客戶賬戶已凍結(jié)。而程序邏輯錯誤、系統(tǒng)環(huán)境錯誤不適于輸出大量的信息。在系統(tǒng)監(jiān)控中的機制,每一種機制都不能使維護人員達到易于排查錯誤的目的。每個交易的輸入/輸出信息并不包含客戶賬戶等當時所有的實時信息,維護人員使用輸入信息重現(xiàn)該錯誤時經(jīng)常會遇到無法復現(xiàn)錯誤的情況,所以根據(jù)輸入輸出信息無法容易地推導出交易在程序中的流轉(zhuǎn)情況。而且,程序的跟蹤信息一般是比較龐大,不可能全面長期開啟,如果擇機開啟,則一定是事后處理,而一般生產(chǎn)非普遍的錯誤,發(fā)生場景都是很特別而且極難復現(xiàn),所以即使開啟,也難以捕捉出錯交易。報錯場景快照機制是出錯點的實時場景,相當于第一種輸入輸出信息(實際上也是交易開始和結(jié)束點的快照)中間增加了一個截面的快照,在出錯之前的很長時間之間的程序流轉(zhuǎn)和賬戶信息變化還是無法獲得,如果對于所有的錯誤增加快照,跟蹤信息仍然是比較大的。即使有了這樣的機制,仍然不適于實時跟蹤生產(chǎn)的錯誤信息。技術(shù)實現(xiàn)要素:本發(fā)明提供一種錯誤信息記錄方法及裝置,以解決大型服務(wù)系統(tǒng)只能保留少錯誤量信息,導致無法由此得知錯誤原因,進而導致維護人員不能盡快定位生產(chǎn)中錯誤的問題。本發(fā)明提供一種錯誤信息記錄方法,包括:在交易進行過程中,記錄業(yè)務(wù)系統(tǒng)中運行的程序模塊的路由信息,并將記錄的路由信息緩存至內(nèi)存;在所述業(yè)務(wù)系統(tǒng)出錯時,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,并將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,用于獲取所述業(yè)務(wù)系統(tǒng)出錯的原因。一個實施例中,將記錄的路由信息緩存至內(nèi)存,包括:在所述內(nèi)存中定義具有設(shè)定容量的緩存區(qū);將距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息緩存至所述緩存區(qū)。一個實施例中,將距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息緩存至所述緩存區(qū),包括:利用所述緩存區(qū)中存儲空間單元的有限循環(huán)隊列緩存在所述交易進行過程中記錄的路由信息,以實現(xiàn)在所述業(yè)務(wù)系統(tǒng)出錯時緩存距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息。一個實施例中,利用所述緩存區(qū)中存儲空間單元的有限循環(huán)隊列緩存在所述交易進行過程中記錄的路由信息,包括:在所述緩存區(qū)收到路由信息緩存請求時,判斷所述緩存區(qū)中是否有數(shù)據(jù);若否,將所述有限循環(huán)隊列中的起始存儲位置和結(jié)束存儲位置均對應至所述有限循環(huán)隊列中的第1存儲空間單元,并將在所述交易進行過程中記錄的路由信息存儲至所述結(jié)束存儲位置,其中,所述有限循環(huán)隊列中的存儲空間單元被預先順序編號為第1存儲空間單元至第m存儲空間單元,m為大于或等于1的整數(shù)。一個實施例中,利用所述緩存區(qū)中存儲空間單元的有限循環(huán)隊列緩存在所述交易進行過程中記錄的路由信息,還包括:若所述緩存區(qū)中有數(shù)據(jù),且所述有限循環(huán)隊列的結(jié)束存儲位置對應第n存儲空間單元,將所述有限循環(huán)隊列的結(jié)束存儲位置更新對應至所述第n存儲空間單元的后一存儲空間單元,并判斷更新后的結(jié)束存儲位置是否超過所述有限循環(huán)隊列的存儲上限,其中,n為大于或等于1的整數(shù);若否,判斷更新后的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置,若是,將更新后的結(jié)束存儲位置再次更新對應至所述有限循環(huán)隊列中的第1存儲空間單元后,判斷再次更新后的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置;若更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置,將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置,若更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置,將所述有限循環(huán)隊列的起始存儲位置更新對應至其當前對應的所述有限循環(huán)隊列中的存儲空間單元的后一存儲空間單元后,刪除當前的結(jié)束存儲位置中的數(shù)據(jù),并將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置。一個實施例中,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息之前,還包括:在所述業(yè)務(wù)系統(tǒng)出錯時,判斷所述業(yè)務(wù)系統(tǒng)的錯誤類型是否屬于業(yè)務(wù)邏輯錯誤,若是,不從所述內(nèi)存調(diào)取記錄的路由信息,且不緩存記錄的路由信息。一個實施例中,記錄業(yè)務(wù)系統(tǒng)中程序模塊的路由信息之前,還包括:在所述交易開始之前,在所述業(yè)務(wù)系統(tǒng)中程序模塊的分支、入口及出口預先增加路由信息。一個實施例中,記錄的路由信息包括:標記序號、程序模塊名稱、關(guān)鍵欄位和值及流轉(zhuǎn)類型。本發(fā)明還提供一種錯誤信息記錄裝置,包括:路由信息緩存單元,用于執(zhí)行:在交易進行過程中,記錄業(yè)務(wù)系統(tǒng)中運行的程序模塊的路由信息,并將記錄的路由信息緩存至內(nèi)存;錯誤信息存儲單元,用于執(zhí)行:在所述業(yè)務(wù)系統(tǒng)出錯時,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,并將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,用于獲取所述業(yè)務(wù)系統(tǒng)出錯的原因。一個實施例中,所述路由信息緩存單元,包括:有限緩存定義模塊,用于執(zhí)行:在所述內(nèi)存中定義具有設(shè)定容量的緩存區(qū);最近路由信息緩存模塊,用于執(zhí)行:將距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息緩存至所述緩存區(qū)。一個實施例中,所述最近路由信息緩存模塊,包括:有限循環(huán)隊列緩存模塊,用于執(zhí)行:利用所述緩存區(qū)中存儲空間單元的有限循環(huán)隊列緩存在所述交易進行過程中記錄的路由信息,以實現(xiàn)在所述業(yè)務(wù)系統(tǒng)出錯時緩存距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息。一個實施例中,所述有限循環(huán)隊列緩存模塊,包括:緩存狀態(tài)判斷模塊,用于執(zhí)行:在所述緩存區(qū)收到路由信息緩存請求時,判斷所述緩存區(qū)中是否有數(shù)據(jù);第一路由信息緩存模塊,用于執(zhí)行:若否,將所述有限循環(huán)隊列中的起始存儲位置和結(jié)束存儲位置均對應至所述有限循環(huán)隊列中的第1存儲空間單元,并將在所述交易進行過程中記錄的路由信息存儲至所述結(jié)束存儲位置,其中,所述有限循環(huán)隊列中的存儲空間單元被預先順序編號為第1存儲空間單元至第m存儲空間單元,m為大于或等于1的整數(shù)。一個實施例中,所述有限循環(huán)隊列緩存模塊,還包括:隊列存儲上限判斷模塊,用于執(zhí)行:若所述緩存區(qū)中有數(shù)據(jù),且所述有限循環(huán)隊列的結(jié)束存儲位置對應第n存儲空間單元,將所述有限循環(huán)隊列的結(jié)束存儲位置更新對應至所述第n存儲空間單元的后一存儲空間單元,并判斷更新后的結(jié)束存儲位置是否超過所述有限循環(huán)隊列的存儲上限,其中,n為大于或等于1的整數(shù);起始結(jié)束位置判斷模塊,用于執(zhí)行:若否,判斷更新后的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置,若是,將更新后的結(jié)束存儲位置再次更新對應至所述有限循環(huán)隊列中的第1存儲空間單元后,判斷再次更新后的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置;第二路由信息緩存模塊,用于執(zhí)行:若更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置,將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置,若更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置,將所述有限循環(huán)隊列的起始存儲位置更新對應至其當前對應的所述有限循環(huán)隊列中的存儲空間單元的后一存儲空間單元后,刪除當前的結(jié)束存儲位置中的數(shù)據(jù),并將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置。一個實施例中,還包括:錯誤類型過濾單元,用于執(zhí)行:在所述業(yè)務(wù)系統(tǒng)出錯時,判斷所述業(yè)務(wù)系統(tǒng)的錯誤類型是否屬于業(yè)務(wù)邏輯錯誤,若是,不從所述內(nèi)存調(diào)取記錄的路由信息,且不緩存記錄的路由信息。一個實施例中,還包括:路由信息增加單元,用于執(zhí)行:在所述交易開始之前,在所述業(yè)務(wù)系統(tǒng)中程序模塊的分支、入口及出口預先增加路由信息。一個實施例中,所述路由信息緩存單元,還用于執(zhí)行:記錄的路由信息包括:標記序號、程序模塊名稱、關(guān)鍵欄位和值及流轉(zhuǎn)類型。本發(fā)明實施例的錯誤信息記錄方法及裝置,通過在交易進行過程中,記錄業(yè)務(wù)系統(tǒng)中運行的程序模塊的路由信息,并將記錄的路由信息緩存至內(nèi)存,在所述業(yè)務(wù)系統(tǒng)出錯時,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,并將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,能夠以程序員最易接受的方式,通過保存有限流轉(zhuǎn)信息,幫助維護人員快速、易讀地定位出錯原因,且同時解決了生產(chǎn)的空間占用問題。進一步,通過定義有限緩存的方式緩存距離出錯點最近的一些路由信息,可以進一步減小系統(tǒng)壓力。再進一步,通過錯誤篩選,不保存業(yè)務(wù)邏輯錯誤的路由信息,僅保存系統(tǒng)級錯誤的路由信息,也可以進一步減小系統(tǒng)壓力。保留盡可能少、盡可能與系統(tǒng)級錯誤密切相關(guān)的程序路由流轉(zhuǎn)信息能夠使得維護人員更方便、快速的定位錯誤原因。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。在附圖中:圖1是本發(fā)明一實施例的錯誤信息記錄方法的流程示意圖;圖2是本發(fā)明一實施例中緩存路由信息的方法流程示意圖;圖3是本發(fā)明一實施例中利用有限循環(huán)隊列緩存在交易進行過程中記錄的路由信息的方法流程示意圖;圖4是本發(fā)明一實施例中將第一條路由信息存儲至有限循環(huán)隊列的示意圖;圖5是本發(fā)明一實施例中將第五條路由信息存儲至有限循環(huán)隊列的示意圖圖6是本發(fā)明一實施例中將第十一條路由信息存儲至有限循環(huán)隊列的示意圖圖7是本發(fā)明一實施例中緩存數(shù)據(jù)的隊列處理方法的流程示意圖;圖8是本發(fā)明另一實施例的錯誤信息記錄方法的流程示意圖;圖9是本發(fā)明一實施例中錯誤模塊處理流程示意圖;圖10是本發(fā)明又一實施例的錯誤信息記錄方法的流程示意圖;圖11是本發(fā)明一實施例的記錄錯誤信息的流程示意圖;圖12是本發(fā)明一實施例的記錄錯誤信息方法的流程示意圖;圖13是本發(fā)明一實施例的錯誤信息記錄裝置的結(jié)構(gòu)示意圖;圖14是本發(fā)明一實施例中路由信息緩存單元的結(jié)構(gòu)示意圖;圖15是本發(fā)明一實施例中有限循環(huán)隊列緩存模塊的結(jié)構(gòu)示意圖;圖16是本發(fā)明另一實施例中有限循環(huán)隊列緩存模塊的結(jié)構(gòu)示意圖;圖17是本發(fā)明另一實施例的錯誤信息記錄裝置的結(jié)構(gòu)示意圖;圖18是本發(fā)明又一實施例的錯誤信息記錄裝置。具體實施方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面結(jié)合附圖對本發(fā)明實施例做進一步詳細說明。在此,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,但并不作為對本發(fā)明的限定。針對現(xiàn)有大型服務(wù)系統(tǒng)由于客戶量大而無法保存錯誤跟蹤信息,系統(tǒng)錯誤的相關(guān)信息少導致不能讓系統(tǒng)維護人員迅速定位錯誤問題原因的問題,本發(fā)明提供一種錯誤信息記錄方法,不需要保留大量的錯誤信息就能讓系統(tǒng)維護人員快速理解系統(tǒng)錯誤出現(xiàn)的原因。圖1是本發(fā)明一實施例的錯誤信息記錄方法的流程示意圖。如圖1所示,本發(fā)明實施例的錯誤信息記錄方法,可包括步驟:S110:在交易進行過程中,記錄業(yè)務(wù)系統(tǒng)中運行的程序模塊的路由信息,并將記錄的路由信息緩存至內(nèi)存;S120:在所述業(yè)務(wù)系統(tǒng)出錯時,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,并將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,用于獲取所述業(yè)務(wù)系統(tǒng)出錯的原因。在上述步驟S110中,該業(yè)務(wù)系統(tǒng)例如可以是大型銀行系統(tǒng),該交易例如可以是取款、轉(zhuǎn)賬等交易。該業(yè)務(wù)系統(tǒng)可以包括許多程序模塊,該些程序模塊都是為了實現(xiàn)業(yè)務(wù)邏輯而開發(fā)的功能模塊和系統(tǒng)模塊。在交易開始后,與該交易相關(guān)的程序模塊按一定的順序流轉(zhuǎn)運行。通過記錄程序模塊的路由信息可以知道交易是如何在復雜的程序中運行的。一般可在程序模塊的路由節(jié)點記錄反映程序模塊流轉(zhuǎn)的路由信息。每個業(yè)務(wù)系統(tǒng)的用戶請求在程序中流轉(zhuǎn)的路徑會根據(jù)請求的數(shù)據(jù)和用戶的相關(guān)信息不同而發(fā)生變化,通過記錄程序模塊的路由信息,可以知道當前交易是如何在復雜的程序中運行的。其中,該路由信息可以在每個程序模塊調(diào)用和返回點等關(guān)鍵的分支節(jié)點預先增加,以便在交易進行中記錄所需的路由信息。無論程序多么復雜,代碼有多長,對于每個具體的交易,實際走過的程序量會非常少,一次交易走過的程序模塊的關(guān)鍵路由節(jié)點也是非常有限的。因此,與現(xiàn)有技術(shù)中龐大的跟蹤信息相比,本發(fā)明需要緩存的路由信息較少。在上述步驟S120中,業(yè)務(wù)系統(tǒng)出錯可能存在多種原因,例如正常的業(yè)務(wù)邏輯錯誤、系統(tǒng)級錯誤等。對出錯點起處起作用的代碼總和,是一個簡化了的超短程序,這個程序的總和是所有程序在這個場景下的一個切片。從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,例如程序模塊的關(guān)鍵路由信息,能夠反映程序切片信息,而且信息量相對較少。該系統(tǒng)錯誤流水文件可以是數(shù)據(jù)文件、數(shù)據(jù)表等。將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,可以方便系統(tǒng)維護人員調(diào)閱。所以,通過將與錯誤緊密相關(guān)的路由信息保存起來,僅需記錄較少的信息就可以讓維護人員理解錯誤的原因。本發(fā)明實施例中,通過記錄并緩存交易過程中程序模塊的路由信息,在系統(tǒng)出錯時,在從緩存的路由信息中調(diào)取并保存出錯點之前的路由信息,一方面,程序模塊的路由信息能夠有效反映交易過程中程序流轉(zhuǎn)信息;另一方面,僅保存于出錯交易相關(guān)的路由信息,保存數(shù)據(jù)少。而且,技術(shù)人員通常知道錯誤原因是由于流程路由錯誤引起的,但不知道流程錯在哪里,本發(fā)明把反映錯誤流程的路由信息記錄下來,遵循技術(shù)人員最易接受和理解的思路,能夠從根本解決上為技術(shù)人員快速定位錯誤原因提供了解決方案。圖2是本發(fā)明一實施例中緩存路由信息的方法流程示意圖。如圖2所示,在上述步驟S110中,將記錄的路由信息緩存至內(nèi)存的方法,可包括步驟:S111:在所述內(nèi)存中定義具有設(shè)定容量的緩存區(qū);S112:將距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息緩存至所述緩存區(qū)。在上述步驟S111和S112中,通過定義一個有限的緩存容量,并時刻保持離出錯點最近的路由信息,在交易出錯時,就可以知道最近經(jīng)過的路徑。而且,通過定義有限緩存來設(shè)置流水上限能夠避免系統(tǒng)容量不夠、減少對系統(tǒng)的壓力。一些實施例中,在上述步驟S112中,將距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息緩存至所述緩存區(qū)的方法,具體實施方式可為:利用所述緩存區(qū)中存儲空間單元的有限循環(huán)隊列緩存在所述交易進行過程中記錄的路由信息,以實現(xiàn)在所述業(yè)務(wù)系統(tǒng)出錯時緩存距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息。其中,該緩存區(qū)可以預先劃分為多個存儲空間單元,該些存儲空間單元可以按一定順序構(gòu)成有限循環(huán)隊列,每個存儲空間單元可以用于存儲一條路由信息。該設(shè)定條數(shù)可以根據(jù)系統(tǒng)的情況設(shè)定。利用有限循環(huán)隊列不斷緩存在所述交易進行過程中記錄的路由信息,例如距離程序模塊最新流轉(zhuǎn)所達位置最近的某些路由信息,在業(yè)務(wù)系統(tǒng)出錯時,就能達到緩存距離出錯點最近的多條路由信息的目的。本實施例中,利用有限循環(huán)隊列緩存路由信息,對于無指針類型的程序可以直接使用固定的內(nèi)存區(qū),以此能夠方便地定義有限緩存。圖3是本發(fā)明一實施例中利用有限循環(huán)隊列緩存在交易進行過程中記錄的路由信息的方法流程示意圖。如圖3所示,利用所述緩存區(qū)中存儲空間單元的有限循環(huán)隊列緩存在所述交易進行過程中記錄的路由信息的方法,可包括步驟:S1121:在所述緩存區(qū)收到路由信息緩存請求時,判斷所述緩存區(qū)中是否有數(shù)據(jù);S1122:若否,將所述有限循環(huán)隊列中的起始存儲位置和結(jié)束存儲位置均對應至所述有限循環(huán)隊列中的第1存儲空間單元,并將在所述交易進行過程中記錄的路由信息存儲至所述結(jié)束存儲位置,其中,所述有限循環(huán)隊列中的存儲空間單元被預先順序編號為第1存儲空間單元至第m存儲空間單元,m為大于或等于1的整數(shù)。在上述步驟S1122中,所述緩存區(qū)可以預先被劃分為m個存儲空間單元,則所述有限循環(huán)隊列中可共有m個存儲空間單元。該m個存儲空間單元可按一定順序排列,則所述有限循環(huán)隊列包含第1存儲空間單元、第2存儲空間單元、第3存儲空間單元、……、第m-1存儲空間單元、第m存儲空間單元。該起始存儲位置表示在該有限循環(huán)隊列的所有存儲空間單元當前存儲的數(shù)據(jù)中最早存儲的數(shù)據(jù)對應的存儲空間單元,該結(jié)束存儲位置表示在該有限循環(huán)隊列的所有存儲空間單元當前存儲的數(shù)據(jù)中最后存儲的數(shù)據(jù)對應的存儲空間單元。該起始存儲位置處存儲的路由信息可以是離出錯點最遠的路由信息,該結(jié)束存儲位置處存儲的路由信息可以是離出錯點最近的路由信息。在首次向有限循環(huán)隊列存儲路由信息時,起始存儲位置和結(jié)束存儲位置可相同。上述有限循環(huán)隊列可以循環(huán)存儲數(shù)據(jù),例如第1條路由信息至第m條路由信息可分別存儲到第1存儲空間單元至第m存儲空間單元,當有第m+1條路由信息需要存儲時,該第m+1條路由信息可以存儲至例如第1存儲空間單元,可先刪除該第1存儲空間單元的原有數(shù)據(jù),再將第m+1條路由信息存儲至該第1存儲空間單元。在其他實施例中,可以通過其他循環(huán)方式存儲超出隊列存儲空間單元個數(shù)的路由信息。如此一來,可以利用直接使用固定長度的內(nèi)存區(qū),完成固定長度隊列的操作。再如圖3所示,上述利用所述緩存區(qū)中存儲空間單元的有限循環(huán)隊列緩存在所述交易進行過程中記錄的路由信息的方法,還可包括步驟:S1123:若所述緩存區(qū)中有數(shù)據(jù),且所述有限循環(huán)隊列的結(jié)束存儲位置對應第n存儲空間單元,將所述有限循環(huán)隊列的結(jié)束存儲位置更新對應至所述第n存儲空間單元的后一存儲空間單元,并判斷更新后的結(jié)束存儲位置是否超過所述有限循環(huán)隊列的存儲上限,其中,n為大于或等于1的整數(shù);S1124:若否,判斷更新后的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置,若是,將更新后的結(jié)束存儲位置再次更新對應至所述有限循環(huán)隊列中的第1存儲空間單元后,判斷再次更新后的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置;S1125:若更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置,將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置,若更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置,將所述有限循環(huán)隊列的起始存儲位置更新對應至其當前對應的所述有限循環(huán)隊列中的存儲空間單元的后一存儲空間單元后,刪除當前的結(jié)束存儲位置中的數(shù)據(jù),并將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置。在上述步驟S1123中,從起始存儲位置到結(jié)束存儲位置都存儲有數(shù)據(jù),若所述緩存區(qū)中有數(shù)據(jù)且所述有限循環(huán)隊列的結(jié)束存儲位置對應第n存儲空間單元,假如此時起始存儲位置對應第1存儲空間單元,則可說明所述有限循環(huán)隊列中從第1存儲空間單元至第n存儲空間單元都存儲有數(shù)據(jù)。此時若要繼續(xù)向有限循環(huán)隊列中存儲路由信息,則需將結(jié)束存儲位置按有限循環(huán)隊列中存儲空間單元排列的順序向后移動一個位置,以使結(jié)束存儲位置對應第n存儲空間單元的后一存儲空間單元。該有限循環(huán)隊列的存儲上限可以是指有限循環(huán)隊列中最后一個存儲空間單元。在上述步驟S1124中,若當前的結(jié)束存儲位置未超過所述有限循環(huán)隊列的存儲上限,可以直接判斷當前的結(jié)束存儲位置是否與當前的起始存儲位置重疊。若當前的結(jié)束存儲位置超過所述有限循環(huán)隊列的存儲上限,則可說明該有限循環(huán)隊列中最后一個存儲空間單元已存滿數(shù)據(jù),將更新后的結(jié)束存儲位置再次更新對應至所述有限循環(huán)隊列中的第1存儲空間單元之后,再判斷當前的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置。在上述步驟S1125中,若更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置,則說明當前結(jié)束存儲位置和當前的起始存儲位置不重疊,可認為當前結(jié)束存儲位置中無數(shù)據(jù)。若更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置,說明當前結(jié)束存儲位置和當前的起始存儲位置重疊,所述有限循環(huán)隊列中的所有存儲空間單元都存儲有數(shù)據(jù),將所述有限循環(huán)隊列的起始存儲位置更新對應至其當前對應的所述有限循環(huán)隊列中的存儲空間單元的后一存儲空間單元,可以將起始存儲位置對應至后一個空間存儲單元,此時當前結(jié)束存儲位置對應當前起始存儲位置之前對應的空間存儲單元。如此一來,通過刪除當前的結(jié)束存儲位置中的數(shù)據(jù),可以實現(xiàn)刪除有限循環(huán)隊列中最早存儲的路由信息,通過將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置,可以將最新的路由信息存儲起來,從而實現(xiàn)存儲距離出錯點最近的m條路由信息。本實施例中,信息在流水上限內(nèi)按照隊列方式管理,對于超出流水上限的情況,最先記錄的流水從隊列中刪除,從而實現(xiàn)存儲距離出錯點最近一條或多條路由信息。在其他一些實施例中,對于有指針類型的程序,可以利用指針操作完成將最新的多條路由信息存儲至固定長度的隊列中,從而實現(xiàn)利用有限緩存存儲距離出錯點最近的多條路由信息存儲。一些實施例中,業(yè)務(wù)系統(tǒng)中的程序模塊可分別調(diào)用路由信息緩沖模塊緩存路由信息,在程序遇到環(huán)境錯誤時,可調(diào)用錯誤處理模塊進行錯誤信息處理。錯誤信息處理模塊獲取路由信息緩沖模塊緩存的路由信息,將這些信息記錄在系統(tǒng)錯誤流水里供維護人員調(diào)閱。增加了路由信息緩存模塊,用于將有限的(最近的)路由信息時刻保存在內(nèi)存中,供出錯時保存。在錯誤處理模塊中增加獲取和保留路由信息的邏輯,這些信息供維護人員在查閱問題時調(diào)閱,加快維護人員排查問題的速度。一個實施例中,例如有限循環(huán)隊列存儲最近十條路由信息。圖4是本發(fā)明一實施例中將第一條路由信息存儲至有限循環(huán)隊列的示意圖。圖5是本發(fā)明一實施例中將第五條路由信息存儲至有限循環(huán)隊列的示意圖。圖6是本發(fā)明一實施例中將第十一條路由信息存儲至有限循環(huán)隊列的示意圖。如圖4至圖6所示,當將一條信息存入有限循環(huán)隊列時,第一條指針301(起始存儲位置)和最后一條指針302(結(jié)束存儲位置)都指向第一條信息所在位置(對應第1存儲空間單元),當將五條信息存入有限循環(huán)隊列時,第一條指針301仍指向第一條信息所在位置(對應第1存儲空間單元),最后一條指針302指向第五條信息所在位置(對應第5存儲空間單元),當將11條信息存入有限循環(huán)隊列時,第一條指針301指向新的第一條信息所在位置(即,原第二條信息所在位置,對應第2存儲空間單元),最后一條指針302指向新的第十條信息所在位置(即,原第一條信息所在位置,對應第1存儲空間單元)。如此一來,有限循環(huán)隊列一直保持存儲最新的第一條至第十條路由信息,從而使信息限制在有限的長度內(nèi),又是最新的信息。本實施例中,僅以有限循環(huán)隊列存儲十條信息說明本發(fā)明的實施,并非用以限定隊列存儲信息的條數(shù),在其他實施例中隊列可以其他數(shù)目條數(shù)的信息。圖7是本發(fā)明一實施例中緩存數(shù)據(jù)的隊列處理方法的流程示意圖。如圖7所示,隊列收到其他程序模塊緩存路由信息的請求時,判斷緩存中是否有數(shù),若無數(shù)據(jù),設(shè)置起始結(jié)束的位置(起始存儲位置和起始結(jié)束位置)例如為1,即將起始存儲位置和起始結(jié)束位置對應至第1存儲空間單元,此時直接將路由信息放入結(jié)束位置;若有數(shù)據(jù),將結(jié)束位置+1,即后移一個位置,再判斷當前的結(jié)束位置(后移一個位置后的結(jié)束位置)是否超過上限。若當前的結(jié)束位置未超過上限,則直接判斷開始位置是否等于結(jié)束位置,若當前的結(jié)束位置超過上限,則將結(jié)束位置賦值為1,即將結(jié)束位置對應至第1存儲空間單元后,再判斷開始位置是否等于結(jié)束位置。若當前的開始位置不等于當前的結(jié)束位置,則直接將路由信息放入結(jié)束位置;若當前的開始位置等于當前的結(jié)束位置,則將開始位置+1,即將開始位置后移一個位置,再將路由信息放入結(jié)束位置。圖8是本發(fā)明另一實施例的錯誤信息記錄方法的流程示意圖。如圖8所示,圖1所示的錯誤信息記錄方法,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息之前,還可包括步驟:S130:在所述業(yè)務(wù)系統(tǒng)出錯時,判斷所述業(yè)務(wù)系統(tǒng)的錯誤類型是否屬于業(yè)務(wù)邏輯錯誤,若是,不從所述內(nèi)存調(diào)取記錄的路由信息,且不緩存記錄的路由信息。在上述步驟S130中,該錯誤類型可以包括業(yè)務(wù)邏輯錯誤、系統(tǒng)本身錯誤等。該業(yè)務(wù)邏輯錯誤一般可指由于用戶作出了違反業(yè)務(wù)系統(tǒng)功能的操作而導致的錯誤,例如,用戶在余額不足的情況下取款的報錯。本實施例中,當系統(tǒng)報錯時,對于正常的業(yè)務(wù)邏輯錯誤,比如余額不足,可以不記錄路由信息,因為客戶可以根據(jù)錯誤提示推測出出錯的原因,以此可以減少信息的存儲量;而對于系統(tǒng)級的錯誤,就需要記錄下路由信息,從而獲知報錯原因,而且,生產(chǎn)上系統(tǒng)級的錯誤是比較少,即使全部記錄,也不會對系統(tǒng)產(chǎn)生壓力。一些實施例中,可在錯誤處理模塊中加入過濾和路由信息的記錄,錯誤處理時,對于程序模塊傳入的錯誤類型進行過濾,對于業(yè)務(wù)邏輯錯誤按照原有處理方式。對于非業(yè)務(wù)邏輯錯誤,此時一般是無法分配明確的錯誤碼,或者是統(tǒng)一的系統(tǒng)錯誤碼,增加路由信息緩存的處理。路由信息緩存處理時,可從路由信息緩存模塊獲取當前交易的路由信息,并將這些路由信息保存在數(shù)據(jù)文件或數(shù)據(jù)表中。在錯誤處理模塊調(diào)用緩存數(shù)據(jù)時,緩存數(shù)據(jù)模塊可從第一條位置開始,順序輸出信息,直到最后一條信息輸出完畢。圖9是本發(fā)明一實施例中錯誤模塊處理流程示意圖。如圖9所示,收到報錯請求后,進行正常的報錯處理,進而篩選報錯類型,若是業(yè)務(wù)邏輯錯誤(客戶操作錯誤引起的報錯),則結(jié)束處理,若不是業(yè)務(wù)邏輯錯誤,認為是系統(tǒng)本身錯誤,則調(diào)用路由緩存模塊獲取緩存信息,然后將數(shù)據(jù)保存到系統(tǒng)錯誤路由信息表。圖10是本發(fā)明又一實施例的錯誤信息記錄方法的流程示意圖。如圖10所示,圖1所示的錯誤信息記錄方法,在記錄業(yè)務(wù)系統(tǒng)中程序模塊的路由信息之前,還可包括步驟:S140:在所述交易開始之前,在所述業(yè)務(wù)系統(tǒng)中程序模塊的分支、入口及出口預先增加路由信息。在上述步驟S140中,對于路由的關(guān)鍵點,比如模塊分支、入口和出口預先增加簡要的路由信息,反映分支的原因,比如賬戶需要透支,需要走入另一個透支處理模塊時,需要記錄下需要透支的原因。入口需要記錄下當前模塊名稱,出口時記錄下返回狀態(tài)等。本實施例中,通過在所述業(yè)務(wù)系統(tǒng)中程序模塊的分支、入口及出口預先增加路由信息,在業(yè)務(wù)系統(tǒng)出錯是可以獲得更具有針對性的路由信息,以此有助于快速獲取出錯的原因。圖11是本發(fā)明一實施例的記錄錯誤信息的流程示意圖。如圖11所示,交易開始后,程序正常處理(流轉(zhuǎn))同時記錄路由信息,有時需要調(diào)用子程序等操作,與此同時也記錄路由信息。之后,判斷返回的信息是否正確,若是,則進行后續(xù)處理;若不正確,即出現(xiàn)錯誤,則進行錯誤信息的正常處理,例如格式化、返回調(diào)用端等。進而判斷發(fā)生的錯誤是否屬于業(yè)務(wù)邏輯錯誤,若是,則不記錄路由信息;若不是邏輯錯誤,則認為是系統(tǒng)本身錯誤,此時,獲取并保存交易的路由緩存信息,即將與報錯密切相關(guān)的路由信息篩選、記錄下來。一些實施例中,業(yè)務(wù)系統(tǒng)中的程序模塊流轉(zhuǎn)時,其程序流轉(zhuǎn)信息可以設(shè)置固定的格式,這樣便于后續(xù)使用工具對該數(shù)據(jù)進行快速分拆、出報告和開發(fā)查詢交易。表1是本發(fā)明一實施例的出錯信息索引,如表1所示,出錯信息可包括序號和欄位名稱,欄位可包括交易序號、錯誤類型、錯誤描述等。其中,由交易序號可查詢得知是哪筆交易引起的錯誤,由錯誤類型可得知報錯是系統(tǒng)錯誤還是邏輯錯誤,由錯誤描述可得到該錯誤的其他相關(guān)信息。序號欄位名稱說明1交易序號可由此查詢是哪筆交易引起的錯誤2錯誤類型系統(tǒng)錯誤還是邏輯錯誤3錯誤描述說明該錯誤的相關(guān)信息表1出錯信息索引一些實施例中,記錄的路由信息可包括:標記序號、程序模塊名稱、關(guān)鍵欄位和值及流轉(zhuǎn)類型。表2是本發(fā)明一實施例的程序流轉(zhuǎn)信息(路由信息)的格式。如表2所示,程序流轉(zhuǎn)信息可包括序號和欄位名稱,欄位可包括標記序號、程序模塊名稱、關(guān)鍵欄位和值、流轉(zhuǎn)類型、備注及其他動態(tài)信息等。其中,由標記序號可得知本交易的第幾筆流轉(zhuǎn)信息,如果被截取了,就不會從第一條開始。表2程序流轉(zhuǎn)信息圖12是本發(fā)明一實施例的記錄錯誤信息方法的流程示意圖。如圖12所示,該實施例中,記錄錯誤信息方法可包括步驟:S401:原有程序模塊啟動運行;S402:生成路由流轉(zhuǎn)信息;S403:調(diào)用路由信息處理模塊將路由信息保存在內(nèi)存的有限隊列中;S404:程序在出錯時調(diào)用錯誤處理模塊;S405:錯誤處理模塊進行原有的錯誤處理。本實施例中,原有程序模塊為業(yè)務(wù)系統(tǒng)中的程序模塊。路由流轉(zhuǎn)信息為反映程序流轉(zhuǎn)的路由信息。對于純粹采用前端(客戶端)返回錯誤的方式,維護人員定位和復現(xiàn)問題非常困難,與其相比,本發(fā)明可以提供非常具象易讀的信息供維護人員查閱。與使用輸入、輸出或出錯點快照方案相比,本發(fā)明采用動態(tài)而非靜態(tài)的方法,為維護人員提供盡可能長的程序路由流轉(zhuǎn)信息。這個區(qū)別可以形象描述為:快照:現(xiàn)在出錯了數(shù)據(jù)庫出錯狀態(tài):XX賬號:XXX出錯地點:XX模塊路由流轉(zhuǎn)信息:A程序,賬戶因為XXX需要透支,調(diào)用B模塊B模塊:進行透支檢查,調(diào)用C模塊讀取透支表C模塊:讀取透支表CT,透支表出現(xiàn)XXX問題,報錯。由此可見,本發(fā)明的路由流轉(zhuǎn)信息區(qū)別于快照,可以告訴維護人員程序的運行流程和具體的出錯原因。維護人員多半也是程序員,對于生產(chǎn)問題的修復,首先要看明白原有系統(tǒng)的程序出現(xiàn)該種錯誤的原因,在維護人員收到相應的錯誤投訴之后,如果沒有這樣的出錯流轉(zhuǎn)信息,只能通過檢查出錯賬戶,檢查生產(chǎn)環(huán)境數(shù)據(jù),重現(xiàn)這個錯誤來定位這個問題可能出現(xiàn)的原因。但往往效果非常差。對于復雜龐大的系統(tǒng),定位問題往往需要幾天甚至數(shù)周,有時有些問題可能永遠也沒有解。本發(fā)明實施例的錯誤信息記錄方法,通過在交易進行過程中,記錄業(yè)務(wù)系統(tǒng)中運行的程序模塊的路由信息,并將記錄的路由信息緩存至內(nèi)存,在所述業(yè)務(wù)系統(tǒng)出錯時,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,并將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,能夠以程序員最易接受的方式,通過保存有限流轉(zhuǎn)信息,幫助維護人員快速、易讀地定位出錯原因,且同時解決了生產(chǎn)的空間占用問題。進一步,通過定義有限緩存的方式緩存距離出錯點最近的一些路由信息,可以進一步減小系統(tǒng)壓力。再進一步,通過錯誤篩選,不保存業(yè)務(wù)邏輯錯誤的路由信息,僅保存系統(tǒng)級錯誤的路由信息,也可以進一步減小系統(tǒng)壓力。保留盡可能少、盡可能與系統(tǒng)級錯誤密切相關(guān)的程序路由流轉(zhuǎn)信息能夠使得維護人員更方便、快速的定位錯誤原因?;谂c圖1所示的錯誤信息記錄方法相同的發(fā)明構(gòu)思,本申請實施例還提供了一種錯誤信息記錄裝置,如下面實施例所述。由于該錯誤信息記錄裝置解決問題的原理與錯誤信息記錄方法相似,因此該錯誤信息記錄裝置的實施可以參見錯誤信息記錄方法的實施,重復之處不再贅述。圖13是本發(fā)明一實施例的錯誤信息記錄裝置的結(jié)構(gòu)示意圖。如圖13所示,本發(fā)明實施例的錯誤信息記錄裝置,可包括:路由信息緩存單元210和錯誤信息存儲單元220,二者相互連接。路由信息緩存單元210用于執(zhí)行:在交易進行過程中,記錄業(yè)務(wù)系統(tǒng)中運行的程序模塊的路由信息,并將記錄的路由信息緩存至內(nèi)存。錯誤信息存儲單元220用于執(zhí)行:在所述業(yè)務(wù)系統(tǒng)出錯時,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,并將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,用于獲取所述業(yè)務(wù)系統(tǒng)出錯的原因。在上述路由信息緩存單元210中,該業(yè)務(wù)系統(tǒng)例如可以是大型銀行系統(tǒng),該交易例如可以是取款、轉(zhuǎn)賬等交易。該業(yè)務(wù)系統(tǒng)可以包括許多程序模塊,該些程序模塊都是為了實現(xiàn)業(yè)務(wù)邏輯而開發(fā)的功能模塊和系統(tǒng)模塊。在交易開始后,與該交易相關(guān)的程序模塊按一定的順序流轉(zhuǎn)運行。通過記錄程序模塊的路由信息可以知道交易是如何在復雜的程序中運行的。一般可在程序模塊的路由節(jié)點記錄反映程序模塊流轉(zhuǎn)的路由信息。每個業(yè)務(wù)系統(tǒng)的用戶請求在程序中流轉(zhuǎn)的路徑會根據(jù)請求的數(shù)據(jù)和用戶的相關(guān)信息不同而發(fā)生變化,通過記錄程序模塊的路由信息,可以知道當前交易是如何在復雜的程序中運行的。其中,該路由信息可以在每個程序模塊調(diào)用和返回點等關(guān)鍵的分支節(jié)點預先增加,以便在交易進行中記錄所需的路由信息。無論程序多么復雜,代碼有多長,對于每個具體的交易,實際走過的程序量會非常少,一次交易走過的程序模塊的關(guān)鍵路由節(jié)點也是非常有限的。因此,與現(xiàn)有技術(shù)中龐大的跟蹤信息相比,本發(fā)明需要緩存的路由信息較少。在上述錯誤信息存儲單元220中,業(yè)務(wù)系統(tǒng)出錯可能存在多種原因,例如正常的業(yè)務(wù)邏輯錯誤、系統(tǒng)級錯誤等。對出錯點起處起作用的代碼總和,是一個簡化了的超短程序,這個程序的總和是所有程序在這個場景下的一個切片。從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,例如程序模塊的關(guān)鍵路由信息,能夠反映程序切片信息,而且信息量相對較少。該系統(tǒng)錯誤流水文件可以是數(shù)據(jù)文件、數(shù)據(jù)表等。將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,可以方便系統(tǒng)維護人員調(diào)閱。所以,通過將與錯誤緊密相關(guān)的路由信息保存起來,僅需記錄較少的信息就可以讓維護人員理解錯誤的原因。本發(fā)明實施例中,通過記錄并緩存交易過程中程序模塊的路由信息,在系統(tǒng)出錯時,在從緩存的路由信息中調(diào)取并保存出錯點之前的路由信息,一方面,程序模塊的路由信息能夠有效反映交易過程中程序流轉(zhuǎn)信息;另一方面,僅保存于出錯交易相關(guān)的路由信息,保存數(shù)據(jù)少。而且,技術(shù)人員通常知道錯誤原因是由于流程路由錯誤引起的,但不知道流程錯在哪里,本發(fā)明把反映錯誤流程的路由信息記錄下來,遵循技術(shù)人員最易接受和理解的思路,能夠從根本解決上為技術(shù)人員快速定位錯誤原因提供了解決方案。圖14是本發(fā)明一實施例中路由信息緩存單元的結(jié)構(gòu)示意圖。如圖14所示,路由信息緩存單元210,可包括:有限緩存定義模塊211和最近路由信息緩存模塊212,二者相互連接。有限緩存定義模塊211用于執(zhí)行:在所述內(nèi)存中定義具有設(shè)定容量的緩存區(qū)。最近路由信息緩存模塊212用于執(zhí)行:將距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息緩存至所述緩存區(qū)。在上述有限緩存定義模塊211和最近路由信息緩存模塊212中,通過定義一個有限的緩存容量,并時刻保持離出錯點最近的路由信息,在交易出錯時,就可以知道最近經(jīng)過的路徑。而且,通過定義有限緩存來設(shè)置流水上限能夠避免系統(tǒng)容量不夠、減少對系統(tǒng)的壓力。一些實施例中,最近路由信息緩存模塊212可包括:有限循環(huán)隊列緩存模塊。有限循環(huán)隊列緩存模塊用于執(zhí)行:利用所述緩存區(qū)中存儲空間單元的有限循環(huán)隊列緩存在所述交易進行過程中記錄的路由信息,以實現(xiàn)在所述業(yè)務(wù)系統(tǒng)出錯時緩存距離所述出錯點最近的設(shè)定條數(shù)的記錄的路由信息。圖15是本發(fā)明一實施例中有限循環(huán)隊列緩存模塊的結(jié)構(gòu)示意圖。如圖15所示,所述有限循環(huán)隊列緩存模塊可包括:緩存狀態(tài)判斷模塊2121和第一路由信息緩存模塊2122,二者相互連接。緩存狀態(tài)判斷模塊2121用于執(zhí)行:在所述緩存區(qū)收到路由信息緩存請求時,判斷所述緩存區(qū)中是否有數(shù)據(jù)。第一路由信息緩存模塊2122用于執(zhí)行:若否,將所述有限循環(huán)隊列中的起始存儲位置和結(jié)束存儲位置均對應至所述有限循環(huán)隊列中的第1存儲空間單元,并將在所述交易進行過程中記錄的路由信息存儲至所述結(jié)束存儲位置,其中,所述有限循環(huán)隊列中的存儲空間單元被預先順序編號為第1存儲空間單元至第m存儲空間單元,m為大于或等于1的整數(shù)。圖16是本發(fā)明另一實施例中有限循環(huán)隊列緩存模塊的結(jié)構(gòu)示意圖。如圖16所示,圖15所示的有限循環(huán)隊列緩存模塊,還可包括:隊列存儲上限判斷模塊2123、起始結(jié)束位置判斷模塊2124及第二路由信息緩存模塊2125,上述各模塊順序連接,隊列存儲上限判斷模塊2123與緩存狀態(tài)判斷模塊2121連接。隊列存儲上限判斷模塊2123用于執(zhí)行:若所述緩存區(qū)中有數(shù)據(jù),且所述有限循環(huán)隊列的結(jié)束存儲位置對應第n存儲空間單元,將所述有限循環(huán)隊列的結(jié)束存儲位置更新對應至所述第n存儲空間單元的后一存儲空間單元,并判斷更新后的結(jié)束存儲位置是否超過所述有限循環(huán)隊列的存儲上限,其中,n為大于或等于1的整數(shù)。起始結(jié)束位置判斷模塊2124用于執(zhí)行:若否,判斷更新后的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置,若是,將更新后的結(jié)束存儲位置再次更新對應至所述有限循環(huán)隊列中的第1存儲空間單元后,判斷再次更新后的結(jié)束存儲位置是否等于所述有限循環(huán)隊列的起始存儲位置。第二路由信息緩存模塊2125用于執(zhí)行:若更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置不等于所述有限循環(huán)隊列的起始存儲位置,將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置,若更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置或再次更新后的結(jié)束存儲位置等于所述有限循環(huán)隊列的起始存儲位置,將所述有限循環(huán)隊列的起始存儲位置更新對應至其當前對應的所述有限循環(huán)隊列中的存儲空間單元的后一存儲空間單元后,刪除當前的結(jié)束存儲位置中的數(shù)據(jù),并將在所述交易進行過程中記錄的路由信息存儲至當前的結(jié)束存儲位置。圖17是本發(fā)明另一實施例的錯誤信息記錄裝置的結(jié)構(gòu)示意圖。如圖17所示,圖13所示的錯誤信息記錄裝置,還可包括:錯誤類型過濾單元230,連接于路由信息緩存單元210和錯誤信息存儲單元之間。錯誤類型過濾單元230用于執(zhí)行:在所述業(yè)務(wù)系統(tǒng)出錯時,判斷所述業(yè)務(wù)系統(tǒng)的錯誤類型是否屬于業(yè)務(wù)邏輯錯誤,若是,不從所述內(nèi)存調(diào)取記錄的路由信息,且不緩存記錄的路由信息。在上述錯誤類型過濾單元230中,該錯誤類型可以包括業(yè)務(wù)邏輯錯誤、系統(tǒng)本身錯誤等。該業(yè)務(wù)邏輯錯誤一般可指由于用戶作出了違反業(yè)務(wù)系統(tǒng)功能的操作而導致的錯誤,例如,用戶在余額不足的情況下取款的報錯。本實施例中,當系統(tǒng)報錯時,對于正常的業(yè)務(wù)邏輯錯誤,比如余額不足,可以不記錄路由信息,因為客戶可以根據(jù)錯誤提示推測出出錯的原因,以此可以減少信息的存儲量;而對于系統(tǒng)級的錯誤,就需要記錄下路由信息,從而獲知報錯原因,而且,生產(chǎn)上系統(tǒng)級的錯誤是比較少,即使全部記錄,也不會對系統(tǒng)產(chǎn)生壓力。圖18是本發(fā)明又一實施例的錯誤信息記錄裝置。如圖18所示,圖13所示的錯誤信息記錄裝置,還可包括:路由信息增加單元240,與路由信息緩存單元210連接。路由信息增加單元240用于執(zhí)行:在所述交易開始之前,在所述業(yè)務(wù)系統(tǒng)中程序模塊的分支、入口及出口預先增加路由信息。一些實施例中,所述路由信息緩存單元210還可用于執(zhí)行:記錄的路由信息包括:標記序號、程序模塊名稱、關(guān)鍵欄位和值及流轉(zhuǎn)類型。本發(fā)明實施例的錯誤信息記錄裝置,通過在交易進行過程中,記錄業(yè)務(wù)系統(tǒng)中運行的程序模塊的路由信息,并將記錄的路由信息緩存至內(nèi)存,在所述業(yè)務(wù)系統(tǒng)出錯時,從所述內(nèi)存調(diào)取出錯點之前的程序模塊的路由信息,并將調(diào)取的路由信息保存至系統(tǒng)錯誤流水文件,能夠以程序員最易接受的方式,通過保存有限流轉(zhuǎn)信息,幫助維護人員快速、易讀地定位出錯原因,且同時解決了生產(chǎn)的空間占用問題。進一步,通過定義有限緩存的方式緩存距離出錯點最近的一些路由信息,可以進一步減小系統(tǒng)壓力。再進一步,通過錯誤篩選,不保存業(yè)務(wù)邏輯錯誤的路由信息,僅保存系統(tǒng)級錯誤的路由信息,也可以進一步減小系統(tǒng)壓力。保留盡可能少、盡可能與系統(tǒng)級錯誤密切相關(guān)的程序路由流轉(zhuǎn)信息能夠使得維護人員更方便、快速的定位錯誤原因。在本說明書的描述中,參考術(shù)語“一個實施例”、“一個具體實施例”、“一些實施例”、“例如”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。各實施例中涉及的步驟順序用于示意性說明本發(fā)明的實施,其中的步驟順序不作限定,可根據(jù)需要作適當調(diào)整。本領(lǐng)域內(nèi)的技術(shù)人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁1 2 3 
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1