Verarbeitung von MLLP-Sendeadaptern
Der MLLP-Sendeadapter (Minimal Lower Layer Protocol) unterstützt ein- und zweidirektionale Transportmodi in den folgenden Konfigurationen:
Bidirektionale Adapter für Das Senden von Anfragen und Antworten
Unidirektionale Sendeadapter, der für den Empfang von Bestätigungen (ACKs) konfiguriert ist
Unidirektionale Sendeadapter, der für keine Rückgabenachrichten konfiguriert ist
Bidirektionales Senden von MLLP-Adaptern für Anfragen und Antworten
Verwenden Sie diesen Adapter in einem echten synchronen End-to-End-Szenario. Daher können Sie diesen Adapter nur mit einer Zielpartei verwenden. Der Sendeadapter behält kontinuierlich eine offene Verbindung mit der Remotepartei (URL) bei, bis eine Rückgabenachricht an den Empfangsport für die Anforderungsantwort weitergeleitet wird. Sehen Sie sich das folgende Diagramm für die Architektur der Verarbeitung von Antwort-/Aufforderungsantworten an.
Wenn Sie diesen Adapter verwenden, können Sie das System anweisen, entweder eine ACK-Nachricht oder eine Antwortnachricht an die Branchenanwendung zurückzugeben. Dies geschieht mit der Einstellung Route ACK to Send Pipeline on Request Response Receive Port in the BTAHL7 Configuration Explorer. Wählen Sie diese Eigenschaft aus, um einen ACK zurückzugeben, oder heben Sie die Auswahl auf, um eine Antwortbesprechung zurückzugeben.
Sobald ein Sendeport, der diesen Adapter verwendet, die ursprüngliche Nachricht erfolgreich gesendet hat, löscht BTAHL7 diese Nachricht. Die diesem Sendeport zugeordnete Empfangspipeline generiert keinen ACK. BizTalk leitet die Abfrageantwort unabhängig vom Wert des MSA2-Felds dieser Antwort an die Quellanwendung weiter.
Unidirektionales Senden eines MLLP-Adapters, der für den Empfang von ACKs konfiguriert ist
Dieser Adapter empfängt ACKs über dieselbe Socketverbindung, über die er die ursprüngliche Nachricht sendet, und sendet die ACKs an den Empfangsspeicherort. Der Sendeadapter unterhält kontinuierlich eine offene Verbindung mit der Remotepartei (URL), auch wenn keine Nachrichten darauf warten, dass BizTalk Server sie an sie senden. Wenn mehrere Ports auf dieselbe Remotepartei verweisen, unterhält der Sendeadapter eine Verbindung für jeden Sendeport.
Das Microsoft BizTalk Accelerator for HL7 -Setup (BTAHL7) installiert einen Standardmäßigspeicherort für Empfang, TwoWayAckReceiveLocation. Sie können diesen Empfangsspeicherort mit dem MLLP-Sendeadapter für den Empfang von ACKs verwenden. Für diese Konfiguration des Sendeports mit diesem Adapter müssen Sie dem Sendeport einen Empfangsspeicherort zuordnen.
Verwenden Sie diesen Sendeport, wenn Sie für den Empfang einer Antwortnachricht mit einem MSA-Feld oder für die Unterstützung mehrerer Ziele eingerichtet sind. Der bidirektionale Solicit-Response-Adapter funktioniert nicht mit dem MSA-Feld oder mit mehreren Zielen.
Vom unidirektionalen MLLP-Sendeadapter empfangene Bestätigungen
Wenn ein für ACKs konfigurierter unidirektionale MLLP-Sendeadapter einen empfängt, löscht BizTalk Server je nach Typ des ACK die ursprüngliche Nachricht aus der MessageBox-Datenbank, wiederholt sie oder hält sie an. BTAHL7 analysiert den ACK in zwei Phasen:
Die erste Phase erfolgt im Sendeadapter, in dem BTAHL7 das Feld MSA1 analysiert, um den Typ des ACK zu bestimmen.
In der zweiten Phase führt BTAHL7 eine vollständige Analyse des ACK durch und übermittelt dann den ACK an die MessageBox-Datenbank.
Sie konfigurieren den ACK, den der Bidirektionale Sendeadapter in BTAHL7 Configuration Explorer erwartet.
Die folgende Tabelle zeigt die ACKs, die ein MLLP-Sendeadapter empfangen kann, und die resultierende Aktion für die ursprüngliche Nachricht.
ACK empfangen | Aktion für die ursprüngliche Nachricht |
---|---|
Commit accept oder Application Accept | Löschen aus der MessageBox-Datenbank |
Commit/Anwendung, Ablehnen von ACK oder Ungültiger ACK | Angehalten |
Commit-/Anwendungsfehler | Wiederholen/Verschieben zum Sicherungstransport/Anhalten |
Statischer ACK-Erfolg | Löschen aus der MessageBox-Datenbank |
Statischer ACK-Fehler | Angehalten |
In der folgenden Tabelle sind ungültige ACK-Bedingungen aufgeführt.
Instanz | Bedingung |
---|---|
HL7 (Original, Erweitert, Verzögert) | 1. Enthält kein XML. 2. Verfügt nicht über die Struktur, sodass das MSA1-Feld nicht abgerufen werden kann; oder das Feld MSA1 enthält keinen der zulässigen Werte (CA, AA, CR, AR, CE, AE). |
statischen | Stimmt nicht mit einem der zulässigen Werte für erfolgs- oder fail-ACK überein. |
Enthält XML | Wird als Annahme-ACK (unabhängig vom Inhalt) behandelt und die ursprüngliche Nachricht gelöscht. |
Fehlerbedingungen
Folgendes kann auftreten, wenn eine Fehlerbedingung oder Inaktivität vorliegt:
Wenn die ausgehende Nachricht bei der Serialisierung fehlschlägt, sendet der Sendeadapter die Nachricht nicht, es sei denn, es handelt sich um eine Batchnachricht, die BTAHL7 streamt. Wenn dies der Fall ist und BTAHL7 einen Serialisierungsfehler in der Hälfte der Nachricht erkennt, sendet der Adapter keine EB/CR, da BizTalk Server nicht die vollständige Nachricht gesendet hat. Die Pipeline protokolliert einen Fehler, und der Adapter versucht erneut, die Batchnachricht zu senden.
Wenn ein Sendevorgang fehlschlägt, versucht der Adapter, die Nachricht erneut zu senden, bis zur Anzahl von Wiederholungen, die in den Konfigurationseinstellungen für send-port angegeben ist. Nachdem die Wiederholungen ausgeschöpft wurden, wechselt die Nachricht zum Sicherungstransport, sofern vorhanden. Wenn alles andere fehlschlägt, wird die Nachricht angehalten. Die angehaltene Nachricht wird in der ursprünglichen Form (XML) angezeigt.
BTAHL7 kann die folgenden Ereignisse generieren, um die Fehlerbedingungen zu beschreiben:
Ereignis | id | Fehlerbedingung |
---|---|---|
ErrorSendingMessage | 8450 | Es konnte keine Nachricht an die Remotepartei gesendet werden. Die häufigsten Gründe sind Netzwerkfehler oder Timeouts. BTAHL7 kann diesen Fehler melden, wenn die Sendepipeline beim Serialisieren einer großen Nachricht fehlschlägt. |
ErrorReceivingAck | 8451 | Aufgrund eines Netzwerkfehlers oder eines Timeouts konnte keine Bestätigung empfangen werden. |
ErrorConnecting | 8453 | Es konnte keine TCP-Verbindung mit der Remotepartei hergestellt werden. Der Hostname konnte nicht aufgelöst werden, oder die Remotepartei lauscht nicht am Port oder lehnt die Verbindungen ab. |
Hinweis
Die Konfiguration der Zielpartei (in MSH5 der ursprünglichen Nachricht) bestimmt, ob BTAHL7 einen HL7- oder statischen ACK erwartet. Im Falle eines Konflikts behandelt BTAHL7 den ACK als ungültig.
Nachdem der MLLP-Sendeadapter einen ACK verarbeitet hat, wird der ACK als eigene Nachricht an den Empfangsspeicherort übermittelt. Der Disassembler führt eine vollständige Analyse des ACK durch, was dazu führen kann, dass Analysefehler von der Empfangspipeline und/oder der angehaltenen ACK gemeldet werden.
Weitere Informationen
Verarbeiten von MLLP-codierten Nachrichten
Konfigurationsparameter für Sende- und Empfangsadapter
Verarbeitung von MLLP-Empfangsadaptern
Einrichten eines Sendeports zum Empfangen von Bestätigungen