BPEL - 故障處理



要了解如何使用故障處理,我們需要學習Oracle SOA Suite中服務組合的基本架構。

  • 服務元件 - BPEL流程、業務規則、人工任務、中介。這些用於構建SOA組合應用程式。

  • 繫結元件 - 建立SOA組合與外部世界之間的連線。

  • 服務 - 為SOA組合應用程式提供入口點。

  • 繫結 - 定義與服務通訊的協議,例如SOAP/HTTP、JCA介面卡等。

  • WSDL - 定義Web服務的服務定義。

  • 引用 - 使SOA組合應用程式能夠向外部服務傳送訊息。

  • - 使服務元件之間能夠連線。

故障型別

現在讓我們看看不同型別的故障。

業務故障

當應用程式執行THROW活動或INVOKE接收故障作為響應時發生。故障名稱由BPEL流程服務元件指定。使用故障名稱和故障變數的故障處理程式捕獲此故障。

執行時故障

這是由系統丟擲的。這些故障與RunTimeFaultMessage相關聯,幷包含在

http://schemas.oracle.com/bpel/extensionnamespace.

故障處理方法

在本節中,我們將學習關於不同故障處理方法。

丟擲活動

丟擲活動顯式地丟擲故障。catch塊捕獲此故障,並因此執行相應的操作。

  • 使用丟擲活動,您可以丟擲業務故障,並且在建立的範圍內,您可以捕獲此故障並重定向給呼叫者(使用者)以採取行動。

  • 除了上述方法外,您還可以丟擲在建立作用域的catch活動中捕獲的相同故障。在主作用域中,您可以使用catchall活動捕獲此故障。

錯誤處理框架 (EHF)

EHF中使用的兩個主要檔案是:

  • Fault-Policy.xml
  • Fault-Bindings.xml

每當BPEL流程丟擲錯誤時,EHF都會檢查Fault-Bindings.xml檔案中是否存在該錯誤。如果存在,則將採取Fault-Policy.xml檔案中的操作。如果找不到操作,則將丟擲故障,並在catch塊中進行處理。

故障管理框架(Fault-Policy.xml和Fault-Bindings.xml)儲存在SOA組合中。

catch和catchall之類的故障處理程式位於BPEL內部以捕獲所有故障,但只有當呼叫活動失敗時才會執行故障策略。

廣告
© . All rights reserved.