摘 要: 基于企業服務總線實施系統集成過程中,配置基于消息的監控平臺,并添加基于消息的事務處理及異常干預補償機制。當傳輸通道中出現異常消息時,補償機制根據捕捉到的異常信息進行參數匹配后基于消息進行補償處理并存儲在緩存隊列中,根據需要可以對緩存隊列中的消息重新獲取和發送,避免異常消息丟失,確保了集成數據傳輸的可靠性和魯棒性。
關鍵詞: 企業服務總線;監控平臺;消息補償
在基于企業服務總線系統集成平臺中,配置消息監控平臺對消息流進行實時監控,針對每個消息傳輸步驟都有明確可視化的狀態變化數據, 包括消息數據運行情況統計、出錯信息查看、傳輸數據歷史溯源,可以通過監控平臺展示出來。在消息監控平臺中采用消息跟蹤法捕捉異常,并根據異常消息的反饋信息進行情景參數配置,對可預料范圍內的異常進行糾正、事物回滾,實現消息補償,預料外的異常消息也會存儲到中間件緩存隊列中,根據需要經人工干預對消息可以重新獲取、重新發送,避免出現異常后消息丟失。消息補償機制主要采用消息跟蹤、消息補償、異常干預三種方法實現。
1 消息跟蹤
制定“CQSF-XML”的數據交換模型作為統一的消息報文格式,規范系統間消息通信標準,結構化數據便于消息跟蹤功能的實現,同時體現了系統集成的契約原則。CQSF-XML消息報文主要格式[1]如下:
<?xml version="1.0" encoding="UTF-8"?>
<TradeData>
<BaseInfo>
<TradeSeq>信息傳輸交易序列號</TradeSeq>
<ActionCode>操作編碼</ActionCode>
<TradeTime>信息傳輸交易時間</TradeTime>
<SourceSys>信息傳輸源系統名稱</SourceSys>
<Target>信息傳輸源系統名稱</Target>
<ResultCode>應答碼</ResultCode>
<ResultMsg>返回消息</ResultMsg>
<ExceptionMsg>錯誤信息描述</ExceptionMsg>
</BaseInfo>
<SwitchMsg>業務信息</SwitchMsg>
</TradeData>
消息報文內容分為報文頭信息(BaseInfo)和業務數據信息(SwitchMsg),報文頭信息中包含傳輸控制管理信息和一些消息實時狀態標識。其中ResultCode(應答碼)描述消息錯誤級別。主要應答碼定義如表1所示。
在企業服務總線消息傳輸過程中,數據在每個節點都會發生變化,將這一系列的信息變化記錄下來就組成信息交換過程中的監控記錄,包括系統的整體運行狀況。另外,對監控記錄劃分級別,可實現動態更改消息監控深度,從而可以根據不同的需要實現不同級別的信息監控。消息跟蹤架構[2]示意圖如圖1所示。
2 消息補償
消息補償架構示意圖如圖2所示。源系統通過企業服務總線同時向系統B和系統C發送數據,請求服務信息被放在緩存中,作為事務處理機制提交,一旦系統C請求調用失敗,就會觸發異常處理程序。異常處理程序根據消息報文進行事務回滾處理,依次調用系統B和系統C中已注冊的事務補償處理程序回滾業務數據,業務數據被存儲在MQ中,等待重新發送。
3 異常干預
系統實時檢查事件庫中的異常信息,根據預先在WMB中配置的E-mail節點自動向指定人員發送異常通知郵件。維護人員通過異常干預控制界面定位異常信息,并從預先配置的異常干預措施中選擇解決方案。異常干預功能提供跟蹤處理,支持消息重傳、批處理過程重做等操作,可以對異常干預結果進行查看。異常干預融合在監控平臺之中。例如當某個消息出現異常而中斷時,可以在監控平臺中查詢到這個異常中斷的服務,同時查詢界面中會顯示能夠處理該異常的一些可行的異常干預措施(例如再運行該任務等)。異常干預架構示意圖如圖3所示。
企業服務總線消息補償處理機制,采用系統化方法保證消息傳輸正確,及時準確定位錯誤原因,在出現異常時進行事務回滾,確保消息的可靠性傳輸,提高了我公司企業服務總線運行的健壯性。
參考文獻
[1] 丁躍潮,張濤.XML實用教程(第1版)[M].北京:北京大學出版社,2006.
[2] 張瀟毅,鄧波,丁鯤.一種基于事件流處理引擎的企業服務總線平臺[J].解放軍理工大學學報,2010,11(2):178-183.