中斷商務程序管理解決方案中的處理
本節描述商務程序管理解決方案中的中斷處理機制。 使用中斷機制,可讓您在訂單更新或取消時,終止訂單處理。
中斷處理
實作處理階段的協調流程會呼叫協調流程 CheckInterrupt,以測試進程其他部分的中斷要求。 CheckInterrupt協調流程是由接聽圖形所組成。 接聽圖形的一個分支會檢查與目前順序具有相同相互關聯識別碼的訊息。 如果有這類訊息, CheckInterrupt 協調流程會傳送通知訊息並執行 Throw 圖形。 由於 接聽 圖形中的分支是從左至右執行,所以延遲會出現在右分支中。 請注意延遲是零 (0)。
接 聽 圖形、接收分支和延遲分支的組合,可讓協調流程檢查訊息。 若有任何的中斷訊息,左邊的分支便會執行。 若沒有任何訊息,則右邊的分支會執行,並返回呼叫的協調流程。 中斷訊息是隨時都可傳送的。 因為 CheckInterrupt 協調流程只會偶爾執行,所以可能會有中斷訊息等候。
OrderManager會藉由呼叫插斷器協調流程來設定中斷。 插斷器協調流程會將中斷訊息傳送至InterruptPort,並等候回復。 協調流程會使用封入範圍圖形的Timeout屬性,在未收到回復時重新開機迴圈。 在未接收到回覆之前,只要超過了範圍時間,協調流程便會繼續傳送中斷訊息。 逾時表示要求已符合訂閱,但已無時間可等待回覆。 迴圈會在有回復時結束,如果沒有 對 InterruptPort的訂用帳戶,則為 。
OrderManager搭配處理階段所使用的要求-回應完成模式,是中斷處理的重要部分。 由於 OrderManager 會從階段等候回應,也就是通知,因此它知道階段已在繼續之前開始執行。 這可確保階段不會在其開始之前便接收到中斷。 這也會讓 OrderManager 知道,如果沒有中斷的訂用帳戶,階段已完成。