專利名稱:離線計費的異常處理方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信領域,特別是涉及一種離線計費的異常處理方法及系統(tǒng)。
背景技術:
目前通信領域常見的計費方式有兩種,一種是在線計費,一種是離線計費。其中,離線計費是網絡資源的使用過程同計費數(shù)據(jù)的采集過程同時發(fā)生的一種計費方式,計費數(shù)據(jù)并不實時影響業(yè)務提供的計費形式,因此具有廣泛的應用前景。一般的離線計費過程為首先,計費數(shù)據(jù)模塊(⑶F, Charging DataFunction)向主計費網關模塊(CGF, Charging Gateway Function,計費網關功能)發(fā)送包含話單的話單請求消息,并將保存話單臨時緩沖區(qū)和話單序列號。如果能夠收到主計費網關模塊的應答消息,則可以繼續(xù)處理。但是在某些異常情況下,例如,主計費網關模塊未收到話單請求消息,或者收到話單請求消息但是應答消息未發(fā)送到計費數(shù)據(jù)模塊,那么計費數(shù)據(jù)模塊則會一直等待,其中的話單臨時緩沖區(qū)和話單序列號則會一直占用計費數(shù)據(jù)模塊資源,影響其資源利用率。 為了解決這一問題,目前常見的做法為設置備用計費網關模塊,在預定時間內,若計費數(shù)據(jù)模塊未收到主計費網關模塊的應答消息,則向備用計費網關模塊發(fā)送之前的話單請求消息,后續(xù)的處理過程與前述向主計費網關模塊發(fā)送話單請求消息之后的處理過程相同??梢钥闯?,目前的方法通過增加備用計費網關模塊的方式,可以在一定程度上減少因為沒有響應而造成對計費網關模塊資源的占用。但是,如果主計費網關模塊和備用計費網關模塊都出現(xiàn)異常,那么前述問題仍然無法解決。
發(fā)明內容
本發(fā)明提供一種離線計費的異常處理方法及系統(tǒng),能夠解決因為計費網關模塊異常而導致的計費數(shù)據(jù)模塊資源長時間被占用的問題。為了解決上述問題,本發(fā)明公開了一種離線計費的異常處理方法,由計費數(shù)據(jù)模塊執(zhí)行,包括以下步驟步驟101,向主計費網關模塊發(fā)送話單請求消息,并保存所述話單臨時緩沖區(qū)和話單序列號,若在預定時間內未收到主計費網關模塊發(fā)送的應答消息,則進行下一步驟;步驟102,獲取與其他備用計費網關模塊的鏈路狀態(tài),若為正常,則進行步驟103,若為異常,則進行步驟106;步驟103,向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息,若收到所述備用計費網關模塊發(fā)送的應答消息,則進行步驟104,若未收到所述備用計費網關模塊發(fā)送的應答消息,則進行步驟106 ;步驟104,釋放所述話單臨時緩沖區(qū),并判斷與主計費網關模塊的實時通信狀態(tài),若異常,則進行步驟105;步驟105,向所述備用計費網關模塊發(fā)送話單確認請求消息,并判斷與所述備用計費網關模塊的實時通信狀態(tài),若異常,則釋放所述話單序列號;步驟106,存儲所述話單,釋放所述話單臨時緩沖區(qū)和話單序列號。進一步地,所述向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息還包括在所述話單請求消息中添加表示所述話單可能為重復話單的標識。進一步地,所述判斷與主計費網關模塊的實時通信狀態(tài)包括若計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài)異常,則二者實時通信狀態(tài)為異常;或若計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài)正常,但在預定時間內未收到主計費網關模塊的應答消息,則二者實時通信狀態(tài)為異常。進一步地,所述判斷與所述備用計費網關模塊的實時通信狀態(tài)包括若計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài)異常,則二者實時通信狀態(tài)異常;或若計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài)正常,但是在預定時間內未收到備用計費網關模塊的應答消息,則二者實時通信狀態(tài)異常。進一步地,所述備用計費網關模塊數(shù)量為一個或多個,當所述備用計費網關模塊數(shù)量為多個,且計費數(shù)據(jù)模塊與多個備用計費網關模塊的鏈路狀態(tài)都為正常時,所述向所述備用計費網關模塊發(fā)送所 述已發(fā)送給主計費網關模塊的話單請求消息包括從鏈路狀態(tài)為正常的多個備用計費網關模塊中選取其中一個備用計費網關模塊發(fā)送所述話單請求消息。進一步地,所述從鏈路狀態(tài)為正常的多個備用計費網關模塊中選取其中一個備用計費網關模塊包括隨機選取;或按照所述多個備用計費網關模塊的優(yōu)先級高低選取。本發(fā)明還公開了一種離線計費的異常處理系統(tǒng),置于計費數(shù)據(jù)模塊中,包括第一消息收發(fā)單元,用于向主計費網關模塊發(fā)送話單請求消息,并保存所述話單臨時緩沖區(qū)和話單序列號,若在預定時間內未收到主計費網關模塊發(fā)送的應答消息,則觸發(fā)鏈路狀態(tài)檢測單元;鏈路狀態(tài)檢測單元,獲取計費數(shù)據(jù)模塊與其他備用計費網關模塊的鏈路狀態(tài),若為正常,則觸發(fā)第二消息收發(fā)單元,若為異常,則觸發(fā)話單存儲單元;第二消息收發(fā)單元,用于向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息,若收到所述備用計費網關模塊發(fā)送的應答消息,則觸發(fā)第一實時通信狀態(tài)檢測單元,若未收到所述備用計費網關模塊發(fā)送的應答消息,則觸發(fā)話單存儲單元;第一實時通信狀態(tài)檢測單元,用于釋放所述話單臨時緩沖區(qū),并判斷與主計費網關模塊的實時通信狀態(tài),若異常,則觸發(fā)第二實時通信狀態(tài)檢測單元;第二實時通信狀態(tài)檢測單元,用于向所述備用計費網關模塊發(fā)送話單確認請求消息,并判斷與所述備用計費網關模塊的實時通信狀態(tài),若異常,則釋放所述話單序列號;話單存儲單元,用于存儲所述話單,釋放所述話單臨時緩沖區(qū)和話單序列號。
進一步地,所述第二消息收發(fā)單元還包括標識添加子單元,用于在向所述備用計費網關模塊發(fā)送的話單請求消息中添加表示所述話單可能為重復話單的標識。進一步地,所述第一實時通信狀態(tài)檢測單元包括第一鏈路狀態(tài)檢測子單元,用于檢測計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài),若為異常,則確定二者實時通信狀態(tài)為異常,若為正常,則觸發(fā)第一應答消息檢測子單元;第一應答消息檢測子單元,用于檢測在預定時間內是否收到主計費網關的應答消息,若否,則確定二者實時通信狀態(tài)為異常。進一步地,所述第二實時通信狀態(tài)檢測單元包括第二鏈路狀態(tài)檢測子單元,用于檢測計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài),若為異常,則確定二者實時通信狀態(tài)為異常,若為正常,則觸發(fā)第二應答消息檢測子單元;第二應答消息檢測子單元,用于檢測在預定時間內是否收到備用計費網關的應答消息,若否,則確定二 者實時通信狀態(tài)為異常。進一步地,所述備用計費網關模塊數(shù)量為一個或多個。與現(xiàn)有技術相比,本發(fā)明包括以下優(yōu)點本發(fā)明的離線計費的異常處理方法及系統(tǒng)中,通過對計費數(shù)據(jù)模塊與主計費網關模塊以及備用計費網關模塊之間的實時通信狀態(tài)進行檢測,并根據(jù)實時的檢測結果確定,是否重新發(fā)送話單請求消息,或者是否存儲話單,釋放話單臨時緩沖區(qū)、話單序列號等等??梢员苊庖驗榕c主計費網關模塊或者備用計費網關模塊的實時通信狀態(tài)異常,而導致計費數(shù)據(jù)模塊的資源長時間掛起,計費數(shù)據(jù)模塊產生的話單可以盡快送往計費域,從而保證處理效率。另外,可以避免計費數(shù)據(jù)模塊發(fā)送話單的信令過程因為各種異常而長時間中斷執(zhí)行,或者資源長時間無法釋放而造成的對計費數(shù)據(jù)模塊資源的占用,從而可以提高計費數(shù)據(jù)模塊資源的利用率。另外,在主計費網關模塊長時間未響應時,通過向備用計費網關模塊發(fā)送話單確認請求消息可以讓話單盡快送往計費域,從而提高數(shù)據(jù)處理效率。當然,實施本發(fā)明的任一產品不一定需要同時達到以上所述的所有優(yōu)點。
圖1是本發(fā)明的離線計費的異常處理方法實施例一的流程圖;圖2是本發(fā)明的離線計費的異常處理方法實施例二的流程圖;圖3是本發(fā)明的離線計費的異常處理方法實例一的流程圖;圖4是本發(fā)明的離線計費的異常處理方法實例二的流程圖;圖5是本發(fā)明的離線計費的異常處理方法實例三的流程圖;圖6是本發(fā)明的離線計費的異常處理方法實例四的流程圖;圖7是本發(fā)明的離線計費的異常處理方法實例五的流程圖;圖8是本發(fā)明的離線計費的異常處理方法實例六的流程圖;圖9是本發(fā)明的離線計費的異常處理系統(tǒng)實施例一的結構示意圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。本發(fā)明的離線計費的異常處理方法及系統(tǒng)用于參照圖1,示出本發(fā)明的一種離線計費的異常處理方法實施例一,由計費數(shù)據(jù)模塊實現(xiàn),包括以下步驟步驟101,向主計費網關模塊發(fā)送話單請求消息,并保存所述話單臨時緩沖區(qū)和話單序列號,若在預定時間內未收到主計費網關模塊發(fā)送的應答消息,則進行下一步驟。其中,計費數(shù)據(jù)模塊(O)F, Charging Data Function)若在預定時間內收到主計費網關模塊(CGF,Charging Gateway Function)發(fā)送的應答消息,則說明離線計費過程正常,此時按照正常流程處理,例如,釋放話單臨時緩沖區(qū)和話單序列號。步驟102,獲取與其他備用計費網關模塊的鏈路狀態(tài),若為正常,則進行步驟103,若為異常,則進行步驟106。其中,備用計費網關模塊可以是一個也可以是多個。當備用計費網關模塊有多個時,計費數(shù)據(jù)模塊可能與不同的計費網關模塊具有不同的鏈路狀態(tài),可能有些正常,有些異常。在此種情況下,只要有一個備用計費網關模塊與計費數(shù)據(jù)模塊的鏈路狀態(tài)為正常,則可以執(zhí)行步驟103。當所有備用計費網關模塊與計費數(shù)據(jù)模塊的鏈路狀態(tài)都為異常時,則執(zhí)行步驟106。步驟103,向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息,若收到所述備用計費網關模塊發(fā)送的應答消息,則進行步驟104,若未收到所述備用計費網關模塊發(fā)送的應答 消息,則進行步驟106。當備用計費網關模塊為多個時如果計費數(shù)據(jù)模塊僅與其中一個備用計費網關模塊的鏈路狀態(tài)為正常時,則選取該備用計費網關模塊進行通信;若計費數(shù)據(jù)模塊與多個備用計費網關模塊的鏈路狀態(tài)都是正常時,則從中選取一個備用計費網關模塊進行通信。此時,可以是根據(jù)預先定義的規(guī)則選取備用計費網關模塊,也可以隨機從中選取一個。優(yōu)選地,為了保證通信的準確性,可以預先定義各備用計費網關的優(yōu)先級,對于鏈路狀態(tài)為正常的所有備用計費網關模塊,按照優(yōu)先級的高低選取。優(yōu)選地,在向備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息時,為了對話單請求消息進行區(qū)分和識別,還可以在話單請求消息中添加表示這些話單可能為重復話單的標識。步驟104,釋放所述話單臨時緩沖區(qū),并判斷與主計費網關模塊的實時通信狀態(tài),若異常,則進行步驟105。當收到備用計費網關模塊發(fā)送的應答消息后,計費數(shù)據(jù)模塊會釋放話單臨時緩沖區(qū),但是需要再次判斷與主計費網關模塊的實時通信狀態(tài)。實時通信狀態(tài)包括計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài)是否正常,以及在鏈路狀態(tài)正常下,計費數(shù)據(jù)模塊是否收到主計費網關模塊的應答消息。若計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài)為正常,且在預定時間內收到主計費網關模塊的應答消息,視為與主計費網關模塊的實時通信狀態(tài)正常。此時,可以根據(jù)主計費網關模塊的應答消息進行對應的處理。
與主計費網關模塊的實時通信狀態(tài)為異常包括兩種情況一種是計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài)為異常,一種是二者的鏈路狀態(tài)正常,但是在預定時間內未收到主計費網關模塊的應答消息。步驟105,向所述備用計費網關模塊發(fā)送話單確認請求消息,并判斷與所述備用計費網關模塊的實時通信狀態(tài),若異常,則釋放所述話單序列號。與備用計費網關模塊的實時通信狀態(tài)也包括計費數(shù)據(jù)模塊與備用計費網關模塊的鏈路狀態(tài)是否正常,以及在鏈路狀態(tài)正常下,計費數(shù)據(jù)模塊是否收到備用計費網關模塊的應答消息。若計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài)為正常,且在預定時間內收到備用計費網關模塊的應答消息,視為與備用計費網關模塊的實時通信狀態(tài)正常。此時,可以根據(jù)備用計費網關模塊的應答消息進行對應的處理。與備用計費網關模塊的實時通信狀態(tài)為異常包括兩種情況一種是計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài)為異常,一種是二者的鏈路狀態(tài)正常,但是在預定時間內未收到備用計費網關模塊的應答消息。向備用計費網關模塊發(fā)送話單確認請求消息,是為了避免因為與主計費網關模塊的實時通信狀態(tài)異常,而導致計費數(shù)據(jù)模塊的資源長時間掛起,造成對資源的占用,通過向備用計費網關模塊發(fā)送話單確認請求消息可以讓話單盡快送往計費域(BD,BillingDomain)。同時,在發(fā)送話單確認請求消息后,判斷與備用計費網關模塊的實時通信狀態(tài),若出現(xiàn)異常,釋放話單序列號,是為了避免計費數(shù)據(jù)功能模塊資源長時間被掛起,造成資源的占用。步驟106,存儲所述話單,釋放所述話單臨時緩沖區(qū)和話單序列號。其中,話單可以存儲在非易失存儲區(qū)中,例如,數(shù)據(jù)庫,當后續(xù)計費數(shù)據(jù)模塊與主計費網關模塊或者備用 計費網關模塊的鏈路狀態(tài)正常后,再從數(shù)據(jù)庫中讀取該話單并發(fā)送話單請求消息。釋放話單臨時緩沖區(qū)和話單序列號是為了避免對計費數(shù)據(jù)模塊資源造成占用,從而提高計費數(shù)據(jù)模塊的處理效率??梢岳斫猓笆鰧嵤├兄饕枋隽藢τ诋惓L幚淼牧鞒?,在實際處理時其中的多個判斷步驟可能包含多種結果,例如正常流程,下面結合可能出現(xiàn)正常處理方式進行詳細的說明。參照圖2,示出本發(fā)明的一種離線計費的異常處理方法實施例二,包括若在預定時間內未收到主計費網關發(fā)送的應答消息,則檢查與其他備用計費網關模塊的鏈路狀態(tài),若異常,則存儲話單,并釋放話單臨時緩沖區(qū)和話單序列號;若正常,則向備用計費網關模塊發(fā)送已經發(fā)給主計費網關模塊的話單請求消息,并標記為可能重復的話單。判斷在預定時間內是否收到備用計費網關模塊發(fā)送的應答消息,若否,則存儲話單,并釋放話單臨時緩沖區(qū)和話單序列號;若是,則釋放話單臨時緩沖區(qū),然后進行下一步。判斷長時間與主計費網關模塊的鏈路狀態(tài)(即主計費網關模塊是否有應答消息),若異常,則檢查與備用計費網關模塊的鏈路狀態(tài)(具體處理方式見后續(xù)描述);若正常,則向主計費網關模塊發(fā)送空包話單請求消息(只包含話單序列號);然后再判斷在預定時間內是否收到主計費網關模塊發(fā)送的空包話單應答消息,若否,則檢查與備用計費網關模塊的鏈路狀態(tài)(具體處理方式見后續(xù)描述);若是,則判斷長時間與備用計費網關模塊的鏈路狀態(tài)(即備用計費網關模塊是否有應答消息)。此時,如果未收到備用計費網關模塊的應答消息,則釋放話單序列號;如果收到備用計費網關模塊的應答消息,則向備用計費網關模塊話單確認或取消請求消息(只包含話單序列號),并判斷在預定時間內收到備用計費網關模塊發(fā)送的應答消息,若收到備用計費網關模塊發(fā)送的應答消息,則釋放話單序列號。另外,對于前述 檢查與備用計費網關模塊的鏈路狀態(tài)的后續(xù)處理步驟具體為如果異常,則釋放話單序列號;如果正常,則直接向備用計費網關模塊發(fā)送話單確認請求消息(只包含話單序列號),并判斷在預定時間內是否收到備用計費網關模塊發(fā)送的應答消息,若收到備用計費網關模塊發(fā)送的應答消息,則說明處于正常狀態(tài),那么該話單的相關流程處理完成,此時釋放話單序列號,以減少對計費數(shù)據(jù)模塊資源的占用;若未收到備用計費網關模塊發(fā)送的應答消息,則說明此時與備用計費網關模塊的通信出現(xiàn)異常,為了避免長時間占用計費數(shù)據(jù)模塊資源,此時也需要釋放話單序列號。下面結合具體的實例對前述方法實施例進行詳細的說明。因為本方法實施例為異常處理,下面各實例都是在計費數(shù)據(jù)模塊向主計費網關模塊發(fā)送話單請求消息后,在預定時間內未收到主計費網關模塊發(fā)送的應答消息主計費網關的情況下進行的,即前述方法實施例的步驟101之后。實例一參照圖3,本實例中,CGFl為主計費網關模塊,其他CGF為備用計費網關模塊。具體過程為⑶F獲取⑶F-CGFl的鏈路狀態(tài)為正常,⑶F向CGFl發(fā)送話單請求消息(包含話單)。此時,CDF需要保存剛剛發(fā)送話單臨時緩沖區(qū)和話單序列號,等待CGF I確認收到后才能刪除。但是CDF沒有收到來自CGFl的應答消息,可能原因一話單請求消息沒有到達CGFl,即請求消息丟失;可能原因二 CGF1已經接收并存儲了話單,然后發(fā)往了 BD,但是給CDF的響應消息丟失了。此時,CDF嘗試獲取與其他CGF鏈路狀態(tài),發(fā)現(xiàn)均為異常。那么,CDF將話單存儲到本地非易失存儲區(qū)(⑶F Non-volatile memory)(—般為硬盤數(shù)據(jù)庫或文件),并刪除話單臨時緩沖區(qū)和話單序列號。存儲起來的話單,可以等待某個CGF狀態(tài)重新變?yōu)檎V螅購臄?shù)據(jù)庫里讀取并發(fā)送。為了簡化流程,下述實例中假設包括一個主計費網關模塊(CGFl)和一個備用計費網關模塊(CGF2)。實例二參照圖4,⑶F獲取⑶F-CGFl鏈路狀態(tài)為正常,⑶F向CGFl發(fā)送話單請求消息(包含話單)。此時,CDF需要保存剛剛發(fā)送話單臨時緩沖區(qū)和話單序列號,等待CGFl確認收到后才能刪除。⑶F沒有收到來自CGFl的應答消息,可能原因一話單請求消息沒有到達CGF1,即請求消息丟失;可能原因二 =CGFl已經接收并存儲了話單,然后發(fā)往了 BD,但是給CDF的響應消息丟失。
此時,⑶F獲?、荈-CGF2鏈路狀態(tài)為正常,⑶F將向⑶F2發(fā)送第2步已經向CGFl發(fā)送過并且沒有收到應答消息的話單,并且在發(fā)送消息中標注這些話單為可能重復的話單。⑶F沒有收到來自CGF2的應答消息,可能原因一話單請求消息沒有到達CGF2,即請求消息丟失;可能原因二 CGF2已經接收并存儲了話單,但是給CDF的響應消息丟失了。CDF應將話單存儲到本地非易失存儲區(qū)(一般為硬盤數(shù)據(jù)庫或文件),并刪除話單臨時緩沖區(qū)和話單序列號。存儲起來的話單,將一直等待某個CGF狀態(tài)重新變?yōu)檎V螅購臄?shù)據(jù)庫里讀取并發(fā)送。實例三參照圖5,⑶F獲?、荈-CGFl鏈路狀態(tài)為正常,⑶F向CGFl發(fā)送話單請求消息(包含話單)。此時,CDF需要保存剛剛發(fā)送話單臨時緩沖區(qū)和話單序列號,等待CGFl確認收到后才能刪除。⑶F沒有收到來自CGFl的應答消息,可能原因一話單請求消息沒有到達CGF1,即請求消息丟失;可能原因二 =CGFl已經接收并存儲了話單,然后發(fā)往了 BD,但是給CDF的響應消息丟失了。此時,⑶F獲?、荈-CGF2鏈路狀態(tài)為正常,⑶F將向⑶F2發(fā)送第2步已經向CGFl發(fā)送過并且沒有收到應答消息的話單,并且在發(fā)送消息中標注這些話單為可能重復的話單。
CGF2將這些帶可能重復標識的話單存儲起來,并向⑶F發(fā)送話單響應消息,表示已經正常接收話單。CDF將話單臨時緩沖區(qū)釋放,但是仍需保留話單序列號。經過等待預定時間(時長可由操作維護人員配置)后,⑶F與CGFl間鏈路仍然故障。出于保護CDF資源不被長期掛起,和話單盡快送往BD的要求,CDF主動向CDF2發(fā)送話單確認請求消息。CGF2把話單送往BD,并向⑶F回響應消息。⑶F可以將本地的話單序列號刪除。實例四參照圖6,⑶F獲?、荈-CGFl鏈路狀態(tài)為正常,⑶F向CGFl發(fā)送話單請求消息(包含話單)。此時,CDF需要保存剛剛發(fā)送話單臨時緩沖區(qū)和話單序列號,等待CGFl確認收到后才能刪除。⑶F沒有收到來自CGFl的應答消息,可能原因一話單請求消息沒有到達CGF1,即請求消息丟失;可能原因二 =CGFl已經接收并存儲了話單,然后發(fā)往了 BD,但是給CDF的響應消息丟失了。此時,⑶F獲?、荈-CGF2鏈路狀態(tài)為正常,⑶F將向⑶F2發(fā)送第2步已經向CGFl發(fā)送過并且沒有收到應答消息的話單,并且在發(fā)送消息中標注這些話單為可能重復的話單。CGF2將這些帶可能重復標識的話單存儲起來,并向CDF發(fā)送話單響應消息,表示已經正常接收話單。CDF將話單臨時緩沖區(qū)釋放,但是仍需保留話單序列號。通過NodeAlive消息或Echo消息,⑶F檢測到與CGFl間鏈路恢復正常。⑶F向CGFl發(fā)送話單空包(可配置重發(fā)次數(shù))。但是CGFl —直不回響應(鏈路應答消息正常),這一情況持續(xù)預定時間(時長可由操作維護人員配置)后,出于保護CDF資源不被長期掛起,和話單盡快送往BD的要求,⑶F主動向⑶F2發(fā)送話單確認請求消息,CGF2把話單送往BD,并向⑶F回響應消息。此時,⑶F可以將本地的話單序列號刪除。實例五參照圖7,⑶F獲?、荈-CGFl鏈路狀態(tài)為正常,⑶F向CGFl發(fā)送話單請求消息(包含話單)。此時,CDF需要保存剛剛發(fā)送話單臨時緩沖區(qū)和話單序列號,等待CGFl確認收到后才能刪除。⑶F沒有收到來自CGFl的應答消息,可能原因一話單請求消息沒有到達CGF1,即請求消息丟失;可能原因二 =CGFl已經接收并存儲了話單,然后發(fā)往了 BD,但是給CDF的響應消息丟失了。此時,⑶F獲?、荈-CGF2鏈路狀態(tài)為正常,⑶F將向⑶F2發(fā)送第2步已經向CGFl發(fā)送過并且沒有收到應答消息的話單,并且在發(fā)送消息中標注這些話單為可能重復的話單。CGF2將這些帶可能重復標識的話單存儲起來,并向CDF發(fā)送話單響應消息,表示已經正常接收話單。CDF將話單臨時緩沖區(qū)釋放,但是仍需保留話單序列號。通過NodeAli ve消息或Echo消息,⑶F檢測到與CGFl間鏈路恢復正常,⑶F向CGFl發(fā)送話單空包。CGFl向⑶F回響應消息,響應Cause值兩種可能,分別對應于第2步的兩種可能情況一、接受話單(先前沒有接收到此話單話單);二、拒絕重復話單(先前已經接收到此話單序號)。CDF獲取CDF-CGF2鏈路狀態(tài)為故障,這一情況持續(xù)預定時間(時長可由操作維護人員配置)。出于保護CDF資源不被長期掛起,CDF將本地的話單序列號刪除。實例六參照圖8,⑶F獲?、荈-CGFl鏈路狀態(tài)為正常,⑶F向CGFl發(fā)送話單請求消息(包含話單)。此時,CDF需要保存剛剛發(fā)送話單臨時緩沖區(qū)和話單序列號,等待CGFl確認收到后才能刪除。⑶F沒有收到來自CGFl的應答消息,可能原因一話單請求消息沒有到達CGF1,即請求消息丟失;可能原因二 =CGFl已經接收并存儲了話單,然后發(fā)往了 BD,但是給CDF的響應消息丟失了。此時,⑶F獲?、荈-CGF2鏈路狀態(tài)為正常,⑶F將向⑶F2發(fā)送第2步已經向CGFl發(fā)送過并且沒有收到應答消息的話單,并且在發(fā)送消息中標注這些話單為可能重復的話單。CGF2將這些帶可能重復標識的話單存儲起來,并向CDF發(fā)送話單響應消息,表示已經正常接收話單。CDF將話單臨時緩沖區(qū)釋放,但是仍需保留話單序列號。通過NodeAlive消息或Echo消息,⑶F檢測到與CGFl間鏈路恢復正常,⑶F向CGFl發(fā)送話單空包。CGFl向⑶F回響應消息,響應Cause值兩種可能,分別對應于第2步的兩種可能情況一、接受話單(先前沒有接收到此話單話單);二、拒絕重復話單(先前已經接收到此話單序號)。CDF獲取CDF-CGF2鏈路狀態(tài)為可用,向CGF2發(fā)送話單確認消息或話單取消消息(可配置重發(fā)次數(shù))。但是CGF2 —直不回響應(鏈路Echo消息正常),這一情況持續(xù)預定時間(時長可由操作維護人員配置)后,出于保護CDF資源不被長期掛起,CDF將本地的話單序列號刪除。前述六個實例中,對于可能出現(xiàn)的幾種異常的處理方法進行了描述??梢钥闯?,本發(fā)明的離線計費的異常處理方法可以在保證話單不能丟失的前提下,盡力避免重復話單送往計費域,從而減少對計費域資源的占用,避免其進行重復處理。其次,計費數(shù)據(jù)模塊產生的話單可以盡快送往計費域,從而保證處理效率。另外,可以避免計費數(shù)據(jù)模塊發(fā)送話單的信令過程因為各種異常而長時間中斷執(zhí)行,或者資源長時間無法釋放而造成的對計費數(shù)據(jù)模塊資源的占用,從而可以提高計費數(shù)據(jù)模塊資源的利用率。參照圖9,示出本發(fā)明的一種離線計費的異常處理系統(tǒng)實施例,置于計費數(shù)據(jù)模塊中,包括第一消息收發(fā)單元10、鏈路狀態(tài)檢測單元20、第二消息收發(fā)單元30、第一實時通信狀態(tài)檢測單元40、第二實時通信狀態(tài)檢測單元50和話單存儲單元60。第一消息收發(fā)單元10,用于向主計費網關模塊發(fā)送話單請求消息,并保存所述話單臨時緩沖區(qū)和話單序列號,若在預定時間內未收到主計費網關模塊發(fā)送的應答消息,則觸發(fā)鏈路狀態(tài)檢測單元20。
鏈路狀態(tài)檢測單元20,獲取計費數(shù)據(jù)模塊與其他備用計費網關模塊的鏈路狀態(tài),若為正常,則觸發(fā)第二消息收發(fā)單元30,若為異常,則觸發(fā)話單存儲單元60。第二消息收發(fā)單元30,用于向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息,若收到所述備用計費網關模塊發(fā)送的應答消息,則觸發(fā)第一實時通信狀態(tài)檢測單元40,若未收到所述備用計費網關模塊發(fā)送的應答消息,則觸發(fā)話單存儲單元60。第一實時通信狀態(tài)檢測單元40,用于釋放所述話單臨時緩沖區(qū),并判斷與主計費網關模塊的實時通信狀態(tài),若異常,則觸發(fā)第二實時通信狀態(tài)檢測單元50。第二實時通信狀態(tài)檢測單元50,用于向所述備用計費網關模塊發(fā)送話單確認請求消息,并判斷與所述備用計費網關模塊的實時通信狀態(tài),若異常,則釋放所述話單序列號。話單存儲單元60,用于存儲所述話單,釋放所述話單臨時緩沖區(qū)和話單序列號。優(yōu)選地,第二消息收發(fā)單元30還包括標識添加子單元,用于在向所述備用計費網關模塊發(fā)送的話單請求消息中添加表示所述話單可能為重復話單的標識。優(yōu)選地,第一實時通信狀態(tài)檢測單元40包括第一鏈路狀態(tài)檢測子單元和第一應答消息檢測子單元。第一鏈路狀態(tài)檢測子單元,用于檢測計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài),若為異常,則確定二者實時通信狀態(tài)為異常,若為正常,則觸發(fā)第一應答消息檢測子單元;第一應答消息檢測子單元,用于檢測在預定時間內是否收到主計費網關的應答消息,若否,則確定二者實時通信狀態(tài)為異常。優(yōu)選地,第二實時通信狀態(tài)檢測單元包括第二鏈路狀態(tài)檢測子單元和第二應答消息檢測子單元。第二鏈路狀態(tài)檢測子單元,用于檢測計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài),若為異常,則確定二者實時通信狀態(tài)為異常,若為正常,則觸發(fā)第二應答消息檢測子單元;第二應答消息檢測子單元,用于檢測在預定時間內是否收到備用計費網關的應答消息,若否,則確定二者實時通信狀態(tài)為異常??梢岳斫?,該備用計費網關模塊數(shù)量為一個或多個。當備選計費網關模塊數(shù)量為多個時,該系統(tǒng)還可以包括選取子單元,用于從與計費數(shù)據(jù)模塊的鏈路狀態(tài)為正常的多個備用計費網關模塊中選取其中一個備用計費網關模塊來用于發(fā)送話單請求消息??梢岳斫?,選取子單元在選取備用計費網關模塊時,可以隨機選取,也可以根據(jù)各備用計費網關模塊的優(yōu)先級高低選取??梢岳斫?,對于前述系統(tǒng)中描述的第一消息收發(fā)單元和第二消息收發(fā)單元、第一實時通信狀態(tài)檢測單元和第二實時通信狀態(tài)檢測單元、第一鏈路狀態(tài)檢測子單元和第二鏈路狀態(tài)檢測子單元、第一應答消息檢測子單元和第二應答消息檢測子單元在命名上以第一和第二進行區(qū)分,是為了幫助理解本發(fā)明,這些單元實際功能相似,實際處理時也可以由同一功能模塊完成。例如,可以設置一個能夠實現(xiàn)消息收發(fā)的功能模塊來同時實現(xiàn)第一消息收發(fā)單元和第二消息收發(fā)單元所需要進行的消息收發(fā),同樣,其他第一和第二命名的單元也可以由相同的功能模塊來實現(xiàn)。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上對本發(fā)明所提供的離線計費的異常處理方法及系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
權利要求
1.一種離線計費的異常處理方法,由計費數(shù)據(jù)模塊執(zhí)行,其特征在于,包括以下步驟 步驟101,向主計費網關模塊發(fā)送話單請求消息,并保存所述話單臨時緩沖區(qū)和話單序列號,若在預定時間內未收到主計費網關模塊發(fā)送的應答消息,則進行下一步驟; 步驟102,獲取與其他備用計費網關模塊的鏈路狀態(tài),若為正常,則進行步驟103,若為異常,則進行步驟106; 步驟103,向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息,若收到所述備用計費網關模塊發(fā)送的應答消息,則進行步驟104,若未收到所述備用計費網關模塊發(fā)送的應答消息,則進行步驟106 ; 步驟104,釋放所述話單臨時緩沖區(qū),并判斷與主計費網關模塊的實時通信狀態(tài),若異常,則進行步驟105; 步驟105,向所述備用計費網關模塊發(fā)送話單確認請求消息,并判斷與所述備用計費網關模塊的實時通信狀態(tài),若異常,則釋放所述話單序列號; 步驟106,存儲所述話單,釋放所述話單臨時緩沖區(qū)和話單序列號。
2.如權利要求1所述的離線計費的異常處理方法,其特征在于,所述向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息還包括 在所述話單請求消息中添加表示所述話單可能為重復話單的標識。
3.如權利要求1所述的離線計費的異常處理方法,其特征在于,所述判斷與主計費網關模塊的實時通信狀態(tài)包括 若計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài)異常,則二者實時通信狀態(tài)為異常;或 若計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài)正常,但在預定時間內未收到主計費網關模塊的應答消息,則二者實時通信狀態(tài)為異常。
4.如權利要求1所述的離線計費的異常處理方法,其特征在于,所述判斷與所述備用計費網關模塊的實時通信狀態(tài)包括 若計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài)異常,則二者實時通信狀態(tài)異常;或 若計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài)正常,但是在預定時間內未收到備用計費網關模塊的應答消息,則二者實時通信狀態(tài)異常。
5.如權利要求1至4任一項所述的離線計費的異常處理方法,其特征在于,所述備用計費網關模塊數(shù)量為一個或多個,當所述備用計費網關模塊數(shù)量為多個,且計費數(shù)據(jù)模塊與多個備用計費網關模塊的鏈路狀態(tài)都為正常時,所述向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息包括 從鏈路狀態(tài)為正常的多個備用計費網關模塊中選取其中一個備用計費網關模塊發(fā)送所述話單請求消息。
6.如權利要求5所述的離線計費的異常處理方法,其特征在于,所述從鏈路狀態(tài)為正常的多個備用計費網關模塊中選取其中一個備用計費網關模塊包括 隨機選取;或 按照所述多個備用計費網關模塊的優(yōu)先級高低選取。
7.一種離線計費的異常處理系統(tǒng),置于計費數(shù)據(jù)模塊中,其特征在于,包括第一消息收發(fā)單元,用于向主計費網關模塊發(fā)送話單請求消息,并保存所述話單臨時緩沖區(qū)和話單序列號,若在預定時間內未收到主計費網關模塊發(fā)送的應答消息,則觸發(fā)鏈路狀態(tài)檢測單元; 鏈路狀態(tài)檢測單元,獲取計費數(shù)據(jù)模塊與其他備用計費網關模塊的鏈路狀態(tài),若為正常,則觸發(fā)第二消息收發(fā)單元,若為異常,則觸發(fā)話單存儲單元; 第二消息收發(fā)單元,用于向所述備用計費網關模塊發(fā)送所述已發(fā)送給主計費網關模塊的話單請求消息,若收到所述備用計費網關模塊發(fā)送的應答消息,則觸發(fā)第一實時通信狀態(tài)檢測單元,若未收到所述備用計費網關模塊發(fā)送的應答消息,則觸發(fā)話單存儲單元; 第一實時通信狀態(tài)檢測單元,用于釋放所述話單臨時緩沖區(qū),并判斷與主計費網關模塊的實時通信狀態(tài),若異常,則觸發(fā)第二實時通信狀態(tài)檢測單元; 第二實時通信狀態(tài)檢測單元,用于向所述備用計費網關模塊發(fā)送話單確認請求消息,并判斷與所述備用計費網關模塊的實時通信狀態(tài),若異常,則釋放所述話單序列號; 話單存儲單元,用于存儲所述話單,釋放所述話單臨時緩沖區(qū)和話單序列號。
8.如權利要求7所述的離線計費的異常處理系統(tǒng),其特征在于,所述第二消息收發(fā)單元還包括 標識添加子單元,用于在向所述備用計費網關模塊發(fā)送的話單請求消息中添加表示所述話單可能為重復話單的標識。
9.如權利要求7所述的離線計費的異常處理系統(tǒng),其特征在于,所述第一實時通信狀態(tài)檢測單元包括 第一鏈路狀態(tài)檢測子單元,用于檢測計費數(shù)據(jù)模塊與主計費網關模塊之間的鏈路狀態(tài),若為異常,則確定二者實時通信狀態(tài)為異常,若為正常,則觸發(fā)第一應答消息檢測子單元; 第一應答消息檢測子單元,用于檢測在預定時間內是否收到主計費網關的應答消息,若否,則確定二者實時通信狀態(tài)為異常。
10.如權利要求7所述的離線計費的異常處理系統(tǒng),其特征在于,所述第二實時通信狀態(tài)檢測單元包括 第二鏈路狀態(tài)檢測子單元,用于檢測計費數(shù)據(jù)模塊與備用計費網關模塊之間的鏈路狀態(tài),若為異常,則確定二者實時通信狀態(tài)為異常,若為正常,則觸發(fā)第二應答消息檢測子單元; 第二應答消息檢測子單元,用于檢測在預定時間內是否收到備用計費網關的應答消息,若否,則確定二者實時通信狀態(tài)為異常。
11.如權利要求7至10任一項所述的離線計費的異常處理系統(tǒng),其特征在于,所述備用計費網關模塊數(shù)量為一個或多個。
全文摘要
本發(fā)明提供了一種離線計費的異常處理方法,包括向主計費網關模塊發(fā)送話單請求消息,若在預定時間內未收到應答消息,則獲取與備用計費網關模塊的鏈路狀態(tài),若異常,則存儲話單,釋放話單臨時緩沖區(qū)和話單序列號;若正常,則向備用計費網關模塊發(fā)送前述話單請求消息,若未收到應答消息,則存儲話單,釋放話單臨時緩沖區(qū)和話單序列號,若收到應答消息,則釋放話單臨時緩沖區(qū),向備用計費網關模塊發(fā)送話單確認請求消息,并判斷實時通信狀態(tài),若異常,則釋放話單序列號。本發(fā)明還提供了一種實現(xiàn)前述方法的離線計費的異常處理系統(tǒng)。本發(fā)明的離線計費的異常處理方法及系統(tǒng),能夠及時發(fā)現(xiàn)計費網關模塊異常,避免計費數(shù)據(jù)模塊資源長時間被占用。
文檔編號H04W4/24GK103067184SQ20121051483
公開日2013年4月24日 申請日期2012年11月26日 優(yōu)先權日2012年11月26日
發(fā)明者張超 申請人:大唐移動通信設備有限公司