專利名稱:消息日志處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明方法涉及數(shù)據(jù)通信領(lǐng)域,具體地說,涉及一種消息日志處理方法 和系統(tǒng)。
背景技術(shù):
目前,短消息業(yè)務已經(jīng)成為移動數(shù)據(jù)通信領(lǐng)域中最為成熟的業(yè)務。由于 短消息業(yè)務涉及每一個移動用戶,因此隨著今年移動用戶的不斷增長以及用 戶對短消息的使用習慣,短消息業(yè)務量也不斷增大。涉及短消息業(yè)務的設備
主要是短信中心和短信網(wǎng)關(guān),為用戶提供點對點短消息業(yè)務和SP增值短消息
業(yè)務。對于短消息設備系統(tǒng),為了便于事后查詢統(tǒng)計,必須全面記錄短消息 日志信息。而由于業(yè)務量的猛增, 一方面要合理、即時、準確的記錄短消息 日志信息,另一方面又要盡量減少對系統(tǒng)的業(yè)務處理的影響,還要能夠方便 后續(xù)的查詢和統(tǒng)計,因此大業(yè)務量的短消息日志記錄已經(jīng)成為一個越來越重 要的課題。
目前短消息日志記錄一般存在兩種方式, 一種是文件方式,也即把短消 息以及對應的狀態(tài)報告保存到日志文件中。 一種是數(shù)據(jù)庫方式,也即把短消 息以及對應的狀態(tài)報告保存到數(shù)據(jù)庫中。
用日志文件方式存在如下缺陷1)短消息和狀態(tài)報告由于產(chǎn)生在不同的 時刻,因此可能存儲在不同的日志文件中,不利于對應原消息的最終狀態(tài);2) 由于產(chǎn)生了大量的日志文件,不但占用》茲盤空間,而且后續(xù)查詢和統(tǒng)計都要 基于這些日志文件來進行分析,不但耗時而且程序?qū)崿F(xiàn)十分復雜;3)由于每 條消息和狀態(tài)報告都要記錄下來,都要與讀寫磁盤,因此增加了磁盤的IO, 占用了大量的系統(tǒng)資源,在一定程度上影響了正常的業(yè)務運行;4)日后若需 要擴展日志格式,則可能影響原有基于該日志的一些分析處理程序,因此導 致擴展性不強。對于數(shù)據(jù)庫方式, 一般是把原消息直接保存到數(shù)據(jù)庫中,消息下發(fā)成功
后再更新數(shù)據(jù)庫的狀態(tài)。這種方式存在如下缺陷l)隨著業(yè)務量的增加,大 大增加了實時數(shù)據(jù)庫的操作,每個短消息業(yè)務要做一次插入和一次更新操作, 大大增加了系統(tǒng)的負擔;2)消息直接保存在業(yè)務數(shù)據(jù)庫中,占用業(yè)務數(shù)據(jù)庫 資源,系統(tǒng)繁忙時嚴重影響正常業(yè)務的運行;3)消息日志全部記錄到一個數(shù) 據(jù)表中,導致數(shù)據(jù)量巨大,影響后續(xù)分^f效率以及對消息日志的維護。
目前尚未發(fā)現(xiàn)有公開的文獻介紹短消息系統(tǒng)的日志記錄的方法。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種消息日志處理方法和系統(tǒng),以減少 數(shù)據(jù)庫操作,提高消息入庫效率。
為了解決上述問題,本發(fā)明提供了一種消息日志處理方法,該方法由消 息日志處理系統(tǒng)實現(xiàn),該方法包括以下步驟
(a) 業(yè)務處理系統(tǒng)將原消息或關(guān)聯(lián)消息轉(zhuǎn)發(fā)給消息日志處理系統(tǒng);
(b) 消息日志處理系統(tǒng)接收并判斷消息是原消息還是關(guān)聯(lián)消息,若^jf、 消息則緩存該原消息到內(nèi)存中等待狀態(tài)才艮告,若是關(guān)聯(lián)消息,則執(zhí)行步驟(c);
(c) 消息日志處理系統(tǒng)根據(jù)關(guān)聯(lián)消息更新內(nèi)存中的對應原消息信息,并 插入數(shù)據(jù)庫。
進一步地,所述消息日志處理系統(tǒng)定時檢查緩存中的原消息是否超過預 設的暫存有效期,若超過,則將原消息插入數(shù)據(jù)庫,步驟(c)中,消息曰志 處理系統(tǒng)先檢查內(nèi)存中是否有與關(guān)聯(lián)消息對應的原消息,有則更新后,插入 數(shù)據(jù)庫,否則直接到數(shù)據(jù)庫中更新原消息。
進一步地,緩存原消息前,判斷該消息流程是否結(jié)束,若流程結(jié)束則直 接插入數(shù)據(jù)庫,否則緩存該原短消息。
進一步地,在對數(shù)據(jù)庫進行插入或更新操作前,待插入或更新的消息先 存入批量存儲區(qū),當緩存為滿或到達預設時間時再執(zhí)行批量插入或更新操作。
進一步地,所述數(shù)據(jù)庫和批量存儲區(qū)采用按天分表進行數(shù)據(jù)存儲。 為解決上述技術(shù)問題,本發(fā)明還提供了一種消息日志處理系統(tǒng),該系統(tǒng)包括接收單元、處理單元及數(shù)據(jù)庫,其中
接收單元用于接收業(yè)務處理系統(tǒng)轉(zhuǎn)發(fā)的消息,包括原消息和關(guān)聯(lián)消息;
判斷單元用于判斷接收單元接收的消息是原消息還是關(guān)聯(lián)消息,若為關(guān) 聯(lián)消息則通知緩存管理單元;若為原消息則緩存入緩存單元;
緩存單元用于緩存接收單元接收的原消息;
緩存管理單元用于接收判斷單元的通知,根據(jù)關(guān)聯(lián)消息更新對應原消息 的信息,并發(fā)送更新后的消息到所述處理單元,同時刪除緩存單元中的該消 息;
處理單元用于執(zhí)行數(shù)據(jù)庫操作。
進一步地,所述緩存管理單元,還用于定時檢查緩存單元存儲的消息是 否超過預設的暫存有效期,若超過,則送入處理單元進行處理,所述判斷單 元判斷接收單元接收的狀態(tài)報告在緩存單元中沒有對應的原消息,則直接發(fā) 送到處理單元。
進一步地,所述判斷單元判斷接收單元接收的消息是原消息時,還用于 判斷該消息流程是否結(jié)束,若流程結(jié)束則直接送入處理單元,否則緩存該原 消息。
進一步地,所述處理單元包括批量存儲才莫塊和批量處理才莫塊,其中批量 存儲模塊用于批量存儲需要更新或插入數(shù)據(jù)庫的消息,所述批量處理模塊用 于判斷批量存儲才莫塊存儲為滿或到達預設時間時,將批量存儲模塊存儲的消 息批量插入或更新到數(shù)據(jù)庫。
進一步地,所述批量存儲模塊包括批量更新存儲區(qū)和批量插入存儲區(qū), 其中,批量更新存儲區(qū)用于存儲在緩存單元中沒有找到對應原消息的關(guān)聯(lián)消 息;批量插入存儲區(qū),用于存儲已根據(jù)狀態(tài)消息更新過狀態(tài)的消息。
進一步地,所述數(shù)據(jù)庫獨立于業(yè)務處理系統(tǒng)訪問的數(shù)據(jù)庫,且所述數(shù)據(jù) 庫和批量存儲區(qū)采用按天分表進行數(shù)據(jù)存儲。
本發(fā)明系統(tǒng)和方法對需要記錄的、且具有關(guān)聯(lián)消息的消息進行緩存處理, 尤其對于短消息的日志處理,采用內(nèi)存緩存技術(shù)來等待狀態(tài)報告, 一個短消息業(yè)務僅需要做一次數(shù)據(jù)庫插入操作即可完成,從而大大減少了數(shù)據(jù)庫更新操作,提高消息入庫效率。
另外,本發(fā)明利用專門的日志服務器完成短消息日志的記錄工作,并存儲在日志服務器上的專門的數(shù)據(jù)庫中,該方法實現(xiàn)了與業(yè)務數(shù)據(jù)庫的分離,不管是在實時入庫還是后續(xù)查詢統(tǒng)計都大大減少了對正常業(yè)務運行的影響。同時,消息日志處理系統(tǒng)在做數(shù)據(jù)庫插入和更新才喿作時均采用批量入庫方式,極大的提高了數(shù)據(jù)庫操作的效率,使得日志服務器在最小配置的情況下可以支撐業(yè)務系統(tǒng)的大業(yè)務量的消息入庫。日志服務器的消息庫采用按天分表的方式,可以保證每張表的數(shù)據(jù)量不會很大,可以提高后續(xù)消息查詢和統(tǒng)計的效率,也便于后續(xù)對消息表的維護。
圖1是獨立日志服務器與業(yè)務服務器的結(jié)構(gòu)示意圖。
圖2是本發(fā)明消息日志處理方法的流程圖。圖3是本發(fā)明消息日志處理系統(tǒng)的結(jié)構(gòu)框圖。
具體實施例方式
如圖1所示,本發(fā)明日志服務器,獨立于業(yè)務服務器之外,該日志服務器包括消息日志處理系統(tǒng)和日志數(shù)據(jù)庫,該消息日志處理系統(tǒng)通過實時消息接收業(yè)務處理系統(tǒng)的消息日志數(shù)據(jù)流,該日志數(shù)據(jù)庫與業(yè)務服務器的業(yè)務數(shù)據(jù)庫相分離,實現(xiàn)對日志的記錄,同時支持查詢、統(tǒng)計、分析等數(shù)據(jù)庫操作,且不會影響業(yè)務數(shù)據(jù)庫的操作和業(yè)務。
以上所說的業(yè)務服務器包括業(yè)務處理系統(tǒng)和業(yè)務數(shù)據(jù)庫,以短信網(wǎng)關(guān)為例,網(wǎng)關(guān)的主要功能是接收消息并轉(zhuǎn)發(fā)給下級網(wǎng)元,因此業(yè)務處理系統(tǒng)就是指處理短消息業(yè)務轉(zhuǎn)發(fā)的服務器或進程。業(yè)務處理系統(tǒng)主要是接收消息、路由并轉(zhuǎn)發(fā),同時根據(jù)轉(zhuǎn)發(fā)結(jié)果產(chǎn)生計費話單。
本發(fā)明消息日志處理方法包括以下步驟A業(yè)務處理系統(tǒng)將原消息或關(guān)聯(lián)消息轉(zhuǎn)發(fā)給消息消息日志處理系統(tǒng);
B消息消息日志處理系統(tǒng)接收并判斷消息是原消息還是關(guān)聯(lián)消息,若是原消息則緩存該原消息到內(nèi)存中等待狀態(tài)報告,若是關(guān)聯(lián)消息,則執(zhí)行步驟C;
C消息消息日志處理系統(tǒng)根據(jù)關(guān)聯(lián)消息更新內(nèi)存中的對應原消息信息,并插入數(shù)據(jù)庫。
具體應用到短消息系統(tǒng),原消息指原短消息,關(guān)聯(lián)消息指短消息的狀態(tài)報告,根據(jù)實際的現(xiàn)網(wǎng)設備經(jīng)驗,95%的狀態(tài)報告一般會在5分鐘之內(nèi)返回,因此本發(fā)明系統(tǒng)先把原短消息緩存到內(nèi)存中等待狀態(tài)報告,若狀態(tài)報告在5分鐘之內(nèi)返回則系統(tǒng)直接更新內(nèi)存狀態(tài)并進行入庫操作,該方法可以減少90%的數(shù)據(jù)庫更新操作,僅做一次插入即可。若狀態(tài)報告超過5分鐘未返回,則在中處理入庫, 一方面減少對內(nèi)存的占用,另外一方面提高入庫的及時性,便于用戶查詢消息狀態(tài)。并且等待狀態(tài)報告的時間應該是可以靈活設置的,用戶可以根據(jù)自身網(wǎng)絡情況進行調(diào)整。
另外,為了提高數(shù)據(jù)庫執(zhí)行插入和更新操作的效率,采用批量插入和批量更新的方式,其效率可以提高至少一個數(shù)量級。
下面將結(jié)合附圖,詳細說明本發(fā)明方法的具體流程。
本發(fā)明實現(xiàn)的消息日志處理方法參見圖2所示, 一條短消息業(yè)務分為兩個流程, 一是收到原用戶提交的短消息并轉(zhuǎn)發(fā)給目的用戶流程, 一是用戶成功接收后產(chǎn)生的狀態(tài)報告流程,該狀態(tài)報告能夠明確標識前一條消息下發(fā)給用戶是否成功,若失敗是何原因等。因此,對于短消息的日志記錄也包含這兩個步驟。而對于一條消息的日志記錄在本發(fā)明中涉及兩個實體, 一是業(yè)務處理系統(tǒng)在處理業(yè)務過程中應該把消息轉(zhuǎn)發(fā)給消息消息日志處理系統(tǒng)便于后者處理和記錄日志, 一是消息消息日志處理系統(tǒng)接收業(yè)務處理系統(tǒng)轉(zhuǎn)發(fā)的消息,并經(jīng)過處理后進行入庫操作。下面業(yè)務處理系統(tǒng)和消息消息日志處理系統(tǒng)的處理流程進行描述
步驟201:業(yè)務處理系統(tǒng)把原短消息以及狀態(tài)報告轉(zhuǎn)發(fā)給消息消息曰志處理系統(tǒng),業(yè)務處理系統(tǒng)在如下情況下需要給消息消息日志處理系統(tǒng)轉(zhuǎn)發(fā)消(1) 被業(yè)務處理系統(tǒng)直接拒絕了的消息,該消息不會有狀態(tài)報告,流程
結(jié)束;
(2) 消息轉(zhuǎn)發(fā)失敗的消息,包括最終重試失敗,旁路流程失敗的如預付費扣費流程等,被下級網(wǎng)元拒絕以及其他內(nèi)部原因造成的沒有轉(zhuǎn)發(fā)成功的情
況,這種情況下不會有狀態(tài)報告,流程結(jié)束;
(3 )轉(zhuǎn)發(fā)下級網(wǎng)元成攻且不需要等待狀態(tài)報告的消息,比如用戶發(fā)起到SP的MO業(yè)務流程無需等待狀態(tài)報告,該消息流程直接結(jié)束;
(4) 轉(zhuǎn)發(fā)下級網(wǎng)元成功且需要等待狀態(tài)報告的消息,這種情況下日志服務器不能直接入庫需要等待狀態(tài)報告;
(5) 接收到下級網(wǎng)元返回的狀態(tài)報告,消息消息日志處理系統(tǒng)要據(jù)此更新內(nèi)存或數(shù)據(jù)庫中的數(shù)據(jù);
(6) 系統(tǒng)定時處理那些超期沒有返回狀態(tài)報告的消息也要轉(zhuǎn)發(fā)給消息消息日志處理系統(tǒng),用于更新原有數(shù)據(jù)。
步驟202:消息消息日志處理系統(tǒng)收到消息后,首先判斷該消息是原短消息還是狀態(tài)報告,若是原短消息則執(zhí)行步驟203,若是狀態(tài)報告則跳轉(zhuǎn)到步驟206;
步驟203:判斷該原短消息的流程是否已經(jīng)結(jié)束,也即是否還需要等待狀態(tài)報告,若流程已經(jīng)結(jié)束則執(zhí)行步驟209,若流程未結(jié)束,則執(zhí)行步驟204;
步驟204:流程未結(jié)束表示需要等待狀態(tài)報告,將該原消息加入到內(nèi)存緩存隊列中;
步驟205:系統(tǒng)定時檢查內(nèi)存緩存隊列是否有消息超過預先設置的消息暫存有效期,如5分鐘,如過期,則執(zhí)行步驟208;
步驟206:在內(nèi)存中查找與該狀態(tài)報告對應的原短消息,若查找到原消息,則執(zhí)行步驟207,若在內(nèi)存中沒有查找到,說明消息已經(jīng)超期并存入了數(shù)據(jù)庫中,執(zhí)行步驟208;
步驟207:根據(jù)狀態(tài)報告更新原短消息的消息狀態(tài);步驟208:從內(nèi)存緩存隊列中刪除,同時執(zhí)行步驟209:步驟209:把消息插入到當天的批量插入隊列中;
步驟210:把狀態(tài)報告消息插入到原短消息那天(狀態(tài)報告有可能不是當天的,狀態(tài)報告可能延遲最長48小時返回)的批量更新隊列中;
批量入庫隊列分為批量插入隊列和批量更新隊列,這兩類隊列再按天分子隊列,與日志按天的表一一對應,這種隊列的分配方法可以最大可能的提高入庫的效率。
步驟211:批量入庫任務定時掃描所有的入庫隊列,若某隊列滿或即使隊列沒有滿但是已經(jīng)達到一定的時間則對該隊列執(zhí)行批量入庫操作,完成最終的入庫動作。
日志數(shù)據(jù)庫的日志表采用按天分表的方式,根據(jù)原短消息的接收時間來確定插入哪天的表中,收到狀態(tài)報告后也是直接更新這個表中的對應原短消息狀態(tài)。
通過上述流程的分析,可以看出基于獨立日志系統(tǒng)的短消息日志記錄方法,分離了業(yè)務數(shù)據(jù)庫和日志數(shù)據(jù)庫,減少了對業(yè)務正常運行的影響,減少數(shù)據(jù)更新操作以及批量入庫的方式提高了入庫效率,控制內(nèi)存緩存有效期達到了入庫效率與入庫及時性的合理平衡,按天分表的日志記錄方式不但有利于入庫效率的提高,也更有利于后期的查詢、分析、統(tǒng)計以及維護。
為了實現(xiàn)以上方法,本發(fā)明的消息日志處理系統(tǒng)與業(yè)務處理系統(tǒng)采用實時消息的方式通信,如圖3所示,該系統(tǒng)包括接收單元、判斷單元、緩存單元、緩存管理單元及處理單元,其中,
接收單元用于通過實時消息^接收業(yè)務處理系統(tǒng)轉(zhuǎn)發(fā)的消息,包括原消息和狀態(tài)報告(關(guān)聯(lián)消息);
判斷單元用于對接收單元接收的消息進行判斷,包括判斷該消息是原消息還是狀態(tài)報告,若為狀態(tài)報告則進一步判斷緩存單元是否有該狀態(tài)報告對應的原短消息,若有,則通知援存管理單元,否則通知處理單元進4亍處理;若為原消息則進一步判斷該消息是否還有后續(xù)關(guān)聯(lián)消息(即該消息流程是否結(jié)束),若有則緩存入緩存單元,否則發(fā)送到處理單元,以執(zhí)行插入數(shù)據(jù)庫
操作;
緩存單元用于緩存接收單元接收的消息,緩存單元以緩存隊列的形式存儲4妾收的消息。
緩存管理單元用于接收判斷單元的通知,根據(jù)狀態(tài)報告更新對應原短消息的狀態(tài)信息,并發(fā)送到處理單元,同時刪除緩存單元中的該消息;檢查緩存單元中存儲的消息是否過期,若已過期則將緩存單元中的該消息發(fā)送到處理單元;
檢查緩存單元中存儲的消息是否過期,可以預先設置收到原消息直至收到狀態(tài)消息的等待時間,
根據(jù)實際的現(xiàn)網(wǎng)設備經(jīng)驗,95%的狀態(tài)報告一般會在5分鐘之內(nèi)返回,因此本發(fā)明系統(tǒng)先把原短消息緩存到內(nèi)存中等待狀態(tài)報告,若狀態(tài)報告在5分鐘之內(nèi)返回則系統(tǒng)直接更新內(nèi)存狀態(tài)并進行入庫操作,該方法可以減少卯%的數(shù)據(jù)庫更新操作,僅做一次插入即可。若狀態(tài)報告超過5分鐘未返回,則直接處理入庫, 一方面減少對內(nèi)存的占用,另外一方面提高入庫的及時性,便于用戶查詢消息狀態(tài)。并且等待狀態(tài)報告的時間應該是可以靈活設置的,用戶可以根據(jù)自身網(wǎng)絡情況進行調(diào)整。
處理單元用于執(zhí)行插入或更新數(shù)據(jù)的操作,該處理單元包括批量存儲模塊和批量處理模塊,其中,
批量存儲模塊用于批量存儲需要更新或插入數(shù)據(jù)庫的消息,批量存儲單元包括批量更新存儲區(qū)和批量插入存儲區(qū),其中,批量更新存儲區(qū)用于存儲在緩存單元中沒有找到對應原短消息的狀態(tài)才艮告消息;批量插入存儲區(qū),用于存儲已根據(jù)狀態(tài)報告消息更新過狀態(tài)的消息;
批量存儲區(qū)直接采用最簡單的隊列,作為一個暫存隊列,等消息累積到一定量再批量的一次入庫來提高處理效率。
批量處理模塊用于檢測批量存儲單元是否符合批量處理條件,若符合則將批量存儲單元中的消息批量更新或插入數(shù)據(jù)庫;
批量處理涉及數(shù)據(jù)庫的插入和更新操作,為了提高數(shù)據(jù)庫執(zhí)行效率,均采用數(shù)據(jù)庫提供的批量插入和批量更新的方式來執(zhí)行,其效率可以提高至少一個數(shù)量級。
本發(fā)明系統(tǒng)和方法對需要記錄的、且具有關(guān)聯(lián)消息的消息進行緩存處理, 尤其對于短消息的日志處理,采用內(nèi)存緩存技術(shù)來等待狀態(tài)報告, 一個短消 息業(yè)務僅需要做一次數(shù)據(jù)庫插入操作即可完成,從而大大減少了數(shù)據(jù)庫更新 操作。
另外,本發(fā)明利用專門的日志服務器完成短消息日志的記錄工作,并存 儲在日志服務器上的專門的數(shù)據(jù)庫中,該方法實現(xiàn)了與業(yè)務數(shù)據(jù)庫的分離, 不管是在實時入庫還是后續(xù)查詢統(tǒng)計都大大減少了對正常業(yè)務運行的影響。 該方案對于核心的業(yè)務系統(tǒng)來說只是異步的把消息發(fā)送給消息日志處理系統(tǒng) 進行記錄,對于業(yè)務系統(tǒng)來說負荷很輕,相比一般的日志文件記錄或直接入 庫方式,該方法對業(yè)務系統(tǒng)來說負荷是最小的。同時,消息曰志處理系統(tǒng)在 做數(shù)據(jù)庫插入和更新操作時均采用批量入庫方式,極大的提高了數(shù)據(jù)庫操作 的效率,使得日志服務器在最小配置的情況下可以支撐業(yè)務系統(tǒng)的大業(yè)務量 的消息入庫。日志服務器的消息庫采用按天分表的方式,可以保證每張表的 數(shù)據(jù)量不會很大,可以提高后續(xù)消息查詢和統(tǒng)計的效率,也便于后續(xù)對消息 表的維護,比如刪除過期的數(shù)據(jù)時只需要刪除過期表即可,效率非常高,對 數(shù)據(jù)庫的影響很小。由此可見,基于獨立日志系統(tǒng)的短消息日志記錄方法是 一種全新的更為先進合理的方法,特別是在大業(yè)務量的短消息系統(tǒng)中體現(xiàn)尤 為顯著。
本發(fā)明方法和系統(tǒng)日志記錄達到如下目標1)優(yōu)化入庫程序,減少數(shù)據(jù) 庫操作,提高消息入庫效率;2)避免對業(yè)務數(shù)據(jù)庫的訪問,從而減少對正 常業(yè)務的影響;3)盡可能減少入庫周期,提高入庫及時性,便于用戶即時查 詢統(tǒng)計;4)在系統(tǒng)繁忙以及業(yè)務量大時不但要能夠正常記錄消息日志,還要 能夠正常運行系統(tǒng)業(yè)務;5)記錄的日志應該便于后期的查詢、分析、統(tǒng)計以 及維護等。
應當理解的是,上述針對短消息日志記錄的各具體步驟的實現(xiàn)流程較為 具體,并不能因此而認為是對本發(fā)明的專利保護范圍的限制。本領(lǐng)域4支術(shù)人 員在不脫離上述技術(shù)構(gòu)思的情況下所做的所有改變或替換,都應屬于本發(fā)明 專利請求保護的范圍之內(nèi)。
權(quán)利要求
1、一種消息日志處理方法,該方法由消息日志處理系統(tǒng)實現(xiàn),其特征在于,該方法包括以下步驟(a)業(yè)務處理系統(tǒng)將原消息或關(guān)聯(lián)消息轉(zhuǎn)發(fā)給消息日志處理系統(tǒng);(b)消息日志處理系統(tǒng)接收并判斷消息是原消息還是關(guān)聯(lián)消息,若是原消息則緩存該原消息到內(nèi)存中等待狀態(tài)報告,若是關(guān)聯(lián)消息,則執(zhí)行步驟(c);(c)消息日志處理系統(tǒng)根據(jù)關(guān)聯(lián)消息更新內(nèi)存中的對應原消息信息,并插入數(shù)據(jù)庫。
2、 如權(quán)利要求l所述的方法,其特征在于所述消息日志處理系統(tǒng)定時 檢查緩存中的原消息是否超過預設的暫存有效期,若超過,則將原消息插入 數(shù)據(jù)庫,步驟(c)中,消息日志處理系統(tǒng)先檢查內(nèi)存中是否有與關(guān)聯(lián)消息對 應的原消息,有則更新后,插入數(shù)據(jù)庫,否則直接到數(shù)據(jù)庫中更新原消息。
3、 如權(quán)利要求l所述的方法,其特征在于,步驟(b)中,緩存原消息 前,判斷該消息流程是否結(jié)束,若流程結(jié)束則直接插入數(shù)據(jù)庫,否則緩存該 原短消息。
4、 如權(quán)利要求1至3中任一項所述的方法,其特征在于,在對數(shù)據(jù)庫進 行插入或更新操作前,待插入或更新的消息先存入批量存儲區(qū),當緩存為滿 或到達預設時間時再執(zhí)行批量插入或更新操作。
5、 如權(quán)利要求1至3中任一項所述的方法,其特征在于,所述數(shù)據(jù)庫和 批量存儲區(qū)采用按天分表進行數(shù)據(jù)存儲。
6、 一種消息日志處理系統(tǒng),其特征在于,該系統(tǒng)包括4秦收單元、處理單 元及數(shù)據(jù)庫,其中接收單元用于接收業(yè)務處理系統(tǒng)轉(zhuǎn)發(fā)的消息,包括原消息和關(guān)聯(lián)消息;判斷單元用于判斷接收單元接收的消息是原消息還是關(guān)聯(lián)消息,若為關(guān) 聯(lián)消息則通知緩存管理單元;若為原消息則緩存入緩存單元;緩存單元用于緩存接收單元接收的原消息;緩存管理單元用于接收判斷單元的通知,根據(jù)關(guān)聯(lián)消息更新對應原消息 的信息,并發(fā)送更新后的消息到所述處理單元,同時刪除緩存單元中的該消息;處理單元用于執(zhí)行數(shù)據(jù)庫的操作。
7、 如權(quán)利要求6所述的系統(tǒng),其特征在于,所述緩存管理單元,還用于 定時檢查緩存單元存儲的消息是否超過預設的暫存有效期,若超過,則送入 處理單元進行處理,所述判斷單元判斷接收單元接收的狀態(tài)才艮告在緩存單元 中沒有對應的原消息,則直4秦發(fā)送到處理單元。
8、 如權(quán)利要求6所述的系統(tǒng),其特征在于,所述判斷單元判斷接收單元 接收的消息是原消息時,還用于判斷該消息流程是否結(jié)束,若流程結(jié)束則直 接i^處理單元,否則緩存該原消息。
9、 如權(quán)利要求6至8中任一項所述的系統(tǒng),其特征在于,所述處理單元 包括批量存儲模塊和批量處理模塊,其中批量存儲模塊用于批量存儲需要更 新或插入數(shù)據(jù)庫的消息,所述批量處理模塊用于判斷批量存儲模塊存儲為滿 或到達預設時間時,將批量存儲才莫塊存儲的消息批量插入或更新到數(shù)據(jù)庫。
10、 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述批量存儲模塊包括批 量更新存儲區(qū)和批量插入存儲區(qū),其中,批量更新存儲區(qū)用于存儲在緩存單 元中沒有找到對應原消息的關(guān)聯(lián)消息;批量插入存儲區(qū),用于存儲已根據(jù)狀 態(tài)消息更新過狀態(tài)的消息。
11、 如權(quán)利要求6至8中任一項所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫 獨立于業(yè)務處理系統(tǒng)訪問的數(shù)據(jù)庫,且所述數(shù)據(jù)庫和批量存儲區(qū)采用按天分 表進行數(shù)據(jù)存儲。
全文摘要
本發(fā)明提供了一種消息日志處理方法和系統(tǒng),該系統(tǒng)包括接收單元、處理單元及數(shù)據(jù)庫,其中接收單元用于接收業(yè)務處理系統(tǒng)轉(zhuǎn)發(fā)的消息,包括原消息和關(guān)聯(lián)消息;判斷單元用于判斷接收單元接收的消息是原消息還是關(guān)聯(lián)消息,若為關(guān)聯(lián)消息則通知緩存管理單元,若為原消息則緩存入緩存單元;緩存單元用于緩存接收單元接收的原消息;緩存管理單元用于接收判斷單元的通知,根據(jù)關(guān)聯(lián)消息更新對應原消息的信息,并發(fā)送更新后的消息到所述處理單元,同時刪除緩存單元中的該消息;處理單元用于執(zhí)行數(shù)據(jù)庫操作。本發(fā)明方法和系統(tǒng)可以減少數(shù)據(jù)庫操作,提高消息入庫效率。
文檔編號H04W4/12GK101646140SQ20081014448
公開日2010年2月10日 申請日期2008年8月5日 優(yōu)先權(quán)日2008年8月5日
發(fā)明者東 黃 申請人:中興通訊股份有限公司