FRR 協調流程
A4SWIFT透過 FRR 協調流程實作 FRR。 協調流程會判斷 FIN 回應的相互關聯權杖是否符合原始訊息的訊息識別碼。 它會與傳送埠所執行的傳送函式平行處理訊息,並將訊息傳送至 SAA,以及接收來自 SAA 之接收位置所執行的接收函式。
在最高層級,協調流程的實例會執行下列處理:
藉由接聽 MessageBox,快取系結至 SAA 的原始輸出訊息複本。
注意
BizTalk Server A4SWIFT將原始訊息路由傳送至 MessageBox 時,會建立協調流程的實例。
等候A4SWIFT將 FIN 回應從 SAA 發佈至 MessageBox。
根據 FIN 回應的本質,設定原始訊息複本的升級屬性。
將原始訊息的複本發佈回 MessageBox。 然後,自訂處理常式可以視需要訂閱、擷取及處理訊息。
輸出訊息的訂用帳戶
FRR 協調流程會直接系結至 MessageBox。 FRR 協調流程會訂閱所有未包含驗證錯誤的 SWIFT 網路所系結的輸出訊息,方法是訂閱下列屬性:
A4SWIFT_Failed==False (由 SWIFT 反組譯程式驗證程式所設定)
A4SWIFT_Swiftbound==True (由 SWIFT 反組譯程式設定程式所設定)
訊息/回應相互關聯
BizTalk Server藉由比較下列屬性,將原始輸出 FIN 訊息與輸入 FIN 回應訊息相互關聯:
FIN 回應的MQMD_CorrelID內容屬性
輸出 MTXYY 訊息的 A4SWIFT_FRRCorrelationToken 屬性。 這個屬性是由接收管線的合作物件解析階段升級。
這些屬性的值必須相同。 SWIFT 所系結之訊息之傳送管線的編碼器階段會將傳出訊息的 MQMD_MsgID 屬性設定為 A4SWIFT_FRRCorrelationToken 屬性的值。 SAA 會將回應訊息的 MQMD_CorrelID 屬性設定為 MQMD_MsgID 的值。
升級屬性的設定
收到 FIN 回應並將它與原始訊息的複本相互關聯之後,FRR 協調流程會根據回應的本質,設定原始訊息複本的下列升級屬性:
如果回應為 ACK,則A4SWIFT_FRRFailed為 True;如果回應為 NAK,則為 False
如果回應是 NAK,A4SWIFT_FRRFailedReason為下列其中一個值:
< ErrorCode > (從MTS21_FIN_ACKNAK負通知訊息的 405 欄位)
TransportError 從 MQ 系列 PAN/NAN 訊息 ()
從 MT015 (DNK) 訊息) 延遲NAK (
從 MT019 (中止通知) 訊息) 中止 (
如果A4SWIFT未在逾時期間內收到回應,A4SWIFT_FRRFailedReason至 TimedOut。 如需 FRR 延遲逾時的詳細資訊,請參閱下方的一節或 設定 FRR 延遲逾時。
A4SWIFT_SendingServiceType A4SWIFT_FrrService
Bts。對應至訊息回應類型的值作業。 如需詳細資訊,請參閱 建立用於傳送至自訂處理常式的 FRR 傳送埠。
MQ 系列 PAN/NAN 訊息的A4SWIFT_FrrSendTransport (MQ 系列傳輸層級 ACK/NAK)
A4SWIFT_FRRSEND010NDW MT010 訊息 (非傳遞警告)
A4SWIFT_FrrSend011Delivered MT011 訊息 (傳遞通知)
A4SWIFT_FrrSend012SenderACK MT012 訊息 (寄件者通知)
A4SWIFT_FRRSEND015DNK MT015 訊息 (DNK 或延遲 NAK)
A4SWIFT_FRRSEND019ABORT MT019 訊息 (中止通知)
LT) 所傳送之 FIN 訊息 (ACK 的MTS21_FIN_ACKNAK通知訊息A4SWIFT_FrrSendS21ACK
A4SWIFT_FRRSENDS21NAK LT) 所傳送 FIN 訊息的MTS21_FIN_ACKNAK負通知訊息 (NAK
直接繫結
協調流程的接收輸入是由協調流程對 MessageBox 所做的訂用帳戶所定義。 協調流程所升級的內容屬性和值會定義協調流程發佈至 MessageBox 之訊息的傳送輸出。 由於此直接系結至 MessageBox,協調流程會與下列專案分離:
從後端應用程式接收輸出訊息以路由傳送至 SAA 的實體接收位置
將輸出 FIN 訊息從 A4SWIFT 傳送至 SWIFT 聯盟存取 (SAA) 的傳送埠
從 SAA 接收傳入 FIN 回應訊息的接收位置
SAA 儲存 FIN 回應的實體 MQSeries 佇列
對帳 Time-Out
當BizTalk Server建立 FRR 協調流程的新實例時,協調流程會開始等候 FIN 回應。 在執行時間,您必須將協調流程設定為在某個持續時間後逾時,使其不會無限期等候回應。 逾時期間到期時,FRR 協調流程會升級 A4SWIFT_FRRFailedReason 屬性,並將其設定為 TimedOut。 然後,它會將訊息發佈至 MessageBox,並終止。 如果您逾時,相互關聯識別碼就會消失。
您可以建立自訂處理常式來處理 (原始輸出訊息複本) 逾時訊息。 A4SWIFT會使用協調流程中的接聽圖形來完成這項作業。 如需詳細資訊,請參閱 設定 FRR 延遲逾時。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應