FRR-Orchestrierung
A4SWIFT implementiert FRR über die FRR-Orchestrierung. Die Orchestrierung bestimmt, ob das Korrelationstoken der FIN-Antwort mit der Nachrichten-ID der ursprünglichen Nachricht übereinstimmt. Sie verarbeitet die Nachricht parallel mit den Sendefunktionen, die vom Sendeport ausgeführt werden, der die Nachricht an SAA sendet, und mit den Empfangsfunktionen, die vom Empfangsspeicherort ausgeführt werden, der die Nachricht von SAA empfängt.
Auf der höchsten Ebene führt ein instance der Orchestrierung die folgende Verarbeitung aus:
Speichert eine Kopie der ursprünglichen ausgehenden Nachricht, die für SAA gebunden ist, indem auf dem MessageBox-Objekt lauscht.
Hinweis
BizTalk Server erstellt eine instance der Orchestrierung, wenn A4SWIFT die ursprüngliche Nachricht an messageBox weitergibt.
Wartet, bis A4SWIFT eine FIN-Antwort von SAA in MessageBox veröffentlicht.
Legt die höher gestuften Eigenschaften der Kopie der ursprünglichen Nachricht abhängig von der Art der FIN-Antwort fest.
Veröffentlicht die Kopie der ursprünglichen Nachricht zurück in messageBox. Benutzerdefinierte Handler können die Nachricht dann nach Bedarf abonnieren, abrufen und behandeln.
Abonnement für ausgehende Nachrichten
Die FRR-Orchestrierung ist direkt an das MessageBox-Element gebunden. Die FRR-Orchestrierung abonniert alle ausgehenden Nachrichten, die für das SWIFT-Netzwerk gebunden sind und keine Validierungsfehler enthalten, indem die folgenden Eigenschaften abonniert werden:
A4SWIFT_Failed ==False (wie vom SWIFT Disassembler-Validierungsprozess festgelegt)
A4SWIFT_Swiftbound==True (wie vom SWIFT Disassembler-Konfigurationsprozess festgelegt)
Nachrichten-/Antwortkorrelation
BizTalk Server korreliert die ursprüngliche ausgehende FIN-Nachricht mit der eingehenden FIN-Antwortnachricht, indem die folgenden Eigenschaften verglichen werden:
Die MQMD_CorrelID Kontexteigenschaft der FIN-Antwort
Die A4SWIFT_FRRCorrelationToken-Eigenschaft der ausgehenden MTXYY-Nachricht. Diese Eigenschaft wird von der Partyauflösungsphase der Empfangspipeline heraufgestuft.
Die Werte dieser Eigenschaften müssen identisch sein. Die Encoderphase der Sendepipeline für nachrichten, die für SWIFT gebunden sind, legt die MQMD_MsgID-Eigenschaft der ausgehenden Nachricht auf den Wert der A4SWIFT_FRRCorrelationToken-Eigenschaft fest. SAA legt die MQMD_CorrelID-Eigenschaft der Antwortnachricht auf den Wert von MQMD_MsgID fest.
Einstellung höher gestufter Eigenschaften
Nachdem eine FIN-Antwort empfangen und mit der Kopie der ursprünglichen Nachricht korreliert wurde, legt die FRR-Orchestrierung die folgenden heraufgestuften Eigenschaften der Kopie der ursprünglichen Nachricht entsprechend der Art der Antwort fest:
A4SWIFT_FRRFailed auf True, wenn die Antwort ein ACK war, oder False, wenn die Antwort ein NAK war
A4SWIFT_FRRFailedReason zu einem der folgenden Werte, wenn die Antwort ein NAK war:
<ErrorCode> (aus dem Feld 405 der MTS21_FIN_ACKNAK negative Bestätigungsmeldung)
TransportError (aus einer PAN/NAN-Nachricht der MQ-Serie)
DelayedNAK (aus einer MT015(DNK)-Nachricht)
AbortReceived (aus einer MT019-Nachricht (Abbruchbenachrichtigung)
A4SWIFT_FRRFailedReason zu TimedOut, wenn A4SWIFT innerhalb des Timeoutzeitraums keine Antwort erhalten haben. Weitere Informationen zum FRR-Verzögerungstimeout finden Sie weiter unten im Abschnitt "Abstimmungstimeout" oder Festlegen des FRR-Verzögerungstimeouts.
A4SWIFT_SendingServiceType zu A4SWIFT_FrrService
BTS. Vorgang für den Wert, der dem Typ der Nachrichtenantwort entspricht. Weitere Informationen finden Sie unter Erstellen der FRR-Sendeports für das Senden an die benutzerdefinierten Handler.
A4SWIFT_FrrSendTransport für eine PAN/NAN-Nachricht der MQ-Serie (Transportebene ACK/NAK der MQ-Serie)
A4SWIFT_FrrSend010NDW für eine MT010-Nachricht (Non-Delivery Warning)
A4SWIFT_FrrSend011Delivered für eine MT011-Nachricht (Übermittlungsbenachrichtigung)
A4SWIFT_FrrSend012SenderACK für eine MT012-Nachricht (Absenderbenachrichtigung)
A4SWIFT_FrrSend015DNK für eine MT015-Nachricht (DNK oder verzögerte NAK)
A4SWIFT_FrrSend019Abort für eine MT019-Nachricht (Abbruchbenachrichtigung)
A4SWIFT_FrrSendS21ACK für eine MTS21_FIN_ACKNAK Bestätigungsmeldung (ACK einer von einem LT gesendeten FIN-Nachricht)
A4SWIFT_FrrSendS21NAK für eine MTS21_FIN_ACKNAK negative Bestätigungsmeldung (NAK einer von einem LT gesendeten FIN-Nachricht)
Direkte Bindung
Empfangseingaben für die Orchestrierung werden durch Abonnements definiert, die die Orchestrierung für das MessageBox-Objekt vornimmt. Kontexteigenschaften und werte, die von der Orchestrierung heraufgestuft werden, definieren die Sendeausgaben für eine Nachricht, die die Orchestrierung im MessageBox veröffentlicht. Aufgrund dieser direkten Bindung an das MessageBox-Objekt wird die Orchestrierung von folgendem entkoppelt:
Die physischen Empfangsspeicherorte, die ausgehende Nachrichten von der Back-End-Anwendung für das Routing an SAA empfangen
Die Sendeports, die ausgehende FIN-Nachrichten von A4SWIFT an SWIFT Alliance Access (SAA) senden
Die Empfangsspeicherorte, die eingehende FIN-Antwortnachrichten von SAA empfangen
Die physischen MQSeries-Warteschlangen, in denen FIN-Antworten von SAA hinterlegt werden
Time-Out
Wenn BizTalk Server eine neue instance der FRR-Orchestrierung erstellt, beginnt die Orchestrierung mit dem Warten auf FIN-Antworten. Zur Laufzeit müssen Sie die Orchestrierung so konfigurieren, dass ein Timeout nach einer bestimmten Dauer erfolgt, sodass sie nicht unbegrenzt auf die Antwort wartet. Wenn die Timeoutdauer abläuft, erhöht die FRR-Orchestrierung die eigenschaft A4SWIFT_FRRFailedReason und legt sie auf TimedOut fest. Anschließend werden Nachrichten im MessageBox-Objekt veröffentlicht und beendet. Bei einem Timeout ist die Korrelations-ID nicht mehr vorhanden.
Sie können einen benutzerdefinierten Handler erstellen, um Timeoutnachrichten zu verarbeiten (die Kopie der ursprünglichen ausgehenden Nachricht). A4SWIFT würde dies erreichen, indem sie ein Listen-Shape in der Orchestrierung verwenden. Weitere Informationen finden Sie unter Festlegen des FRR-Verzögerungstimeouts.