Geordnete Zustellung von Nachrichten in BizTalk Server

Durch die geordnete Übermittlung von Nachrichten wird sichergestellt, dass Nachrichten, die in der MessageBox-Datenbank in einer bestimmten Reihenfolge veröffentlicht werden, in derselben Reihenfolge an den jeweiligen Abonnenten übermittelt werden, in der sie in der Datenbank veröffentlicht wurden.

Konfigurieren der geordneten Übermittlung von Nachrichten

Die geordnete Übermittlung von Nachrichten kann an den folgenden Stellen konfiguriert werden:

  • Empfangen einer Form in einer Orchestrierung
  • Sendeport

Geordnete Übermittlung mit vorhandenen Transporten

Die Protokolle, die bestimmten Transporten zugrunde liegen (z. B. FILE und HTTP), sind nicht mit dem Konzept der geordneten Übermittlung vereinbar. Wenn die geordnete Übermittlung jedoch für einen Port festgelegt ist, der an einen solchen Transport gebundenen ist, erzwingt BizTalk Server die geordnete Übermittlung dennoch. Dazu wird sichergestellt, dass der Transport die nächste ausgehende Nachricht erst erhält, wenn die aktuelle erfolgreich gesendet wurde. Um dies zu erreichen, übergibt BizTalk Server jede Nachricht in einem einzelnen Batch an den Adapter des Transports und wartet, bis der Adapter die Nachricht erfolgreich aus der Messagebox gelöscht hat, bevor die nächste Nachricht im nächsten Batch an den Adapter übermittelt wird.

Geordnete Übermittlung für benutzerdefinierte Adapter

Bei benutzerdefinierten Empfangsadaptern müssen besondere Aspekte beachtet werden. Wenn Sie einen benutzerdefinierten Adapter erstellen, der eine geordnete Übermittlung beim Empfang unterstützt, muss der Adapter folgende Aktionen ausführen:

  • Nach dem Senden eines Nachrichtenbatches sollte ihr benutzerdefinierter Empfangsadapter auf den BatchComplete-Rückruf von BizTalk Server warten, bevor er den nächsten Batch übermittelt. Weitere Informationen finden Sie unter Schnittstellen für einen Batch-Supported Empfangsadapter.

  • Wenn bei einer Nachricht in der Pipeline ein Fehler auftritt, muss sie (möglichst als nicht fortsetzbar) angehalten werden. Verwenden Sie das BTS. SuspendAsNonResumable-Nachrichtenkontexteigenschaft in BizTalk Server, um die Nachricht entsprechend zu kennzeichnen.

Hinweis

Die Reihenfolge der Nachrichten kann unterbrochen werden, wenn eine angehaltene Nachricht zu einem späteren Zeitpunkt fortgesetzt wird. Wenn Sie das nicht wünschen, halten Sie die Nachrichten, bei denen Fehler auftreten, als nicht fortsetzbar an.

Weitere Informationen zum Erstellen eines benutzerdefinierten Adapters finden Sie unter Entwickeln benutzerdefinierter Adapter.

Bedingungen für die durchgängige Verarbeitung (End-to-End-Verarbeitung) von geordneten Nachrichten

Die folgenden Bedingungen müssen für eine durchgängige geordnete Übermittlung erfüllt sein:

  • Nachrichten müssen mit einem Adapter empfangen werden, der die Reihenfolge der Nachrichten beibehält, wenn er diese an BizTalk Server sendet. In BizTalk Server sind Beispiele für solche Adapter MSMQ und MQSeries. Darüber hinaus können mit HTTP- bzw. SOAP-Adaptern Nachrichten geordnet gesendet werden. In diesem Fall muss jedoch der HTTP- bzw. SOAP-Client die Reihenfolge erzwingen, indem er die Nachrichten einzeln sendet.

  • Sie müssen diese Nachrichten mit einem Sendeport abonnieren, für den die Option Bestellte Übermittlung auf Truefestgelegt ist.

  • Wenn eine Orchestrierung zum Verarbeiten der Nachrichten verwendet wird, sollte nur ein einzelner instance der Orchestrierung verwendet werden, die Orchestrierung sollte für die Verwendung eines sequenziellen Konvois konfiguriert werden, und die Ordered Delivery-Eigenschaft des Empfangsports der Orchestrierung sollte auf Truefestgelegt werden.

Beschränkungen

Die geordnete Übermittlung von Nachrichten wird nicht unterstützt von:

  • Dynamische Sendeports in BizTalk Server 2013 R2 und früheren Versionen

  • Dynamische Sendeports in BizTalk Server 2016 (und allen neueren Versionen) für diese Adaptertypen, die keine geordnete Übermittlung an statischen Sendeports unterstützen

  • Sekundären Transporten

Interaktionen

Achten Sie auf die folgenden Interaktionen mit anderen konfigurierten Funktionen in BizTalk Server, wenn für einen Sendeport die geordnete Übermittlung konfiguriert ist:

  • Die Einstellung "Zukünftige Nachrichten mit dem aktuellen Nachrichtenfehler nicht senden" auf demselben Sendeport:

    • Falsch. Nur die Nachricht, bei der ein Fehler aufgetreten ist, wird (als nicht fortsetzbar) angehalten. Alle nachfolgenden Nachrichten werden weiter verarbeitet. Dadurch wird die Reihenfolge der Nachrichten, bei denen kein Fehler aufgetreten ist, beibehalten, es können jedoch Lücken in der Reihenfolge entstehen. Wenn beispielsweise die Bestellungen 101, 102 und 103 empfangen werden und Bestellung 102 angehalten wird, werden die Bestellungen 101 und 103 nacheinander verarbeitet.

    • Richtig. Die Sendeportinstanz wird angehalten, wenn beim Verarbeiten einer der Nachrichten Fehler auftreten. Dadurch werden alle nachfolgenden Nachrichten in der Gruppe geordneter Nachrichten angehalten. Somit wird die Reihenfolge der Nachrichten beibehalten, indem nachfolgende Nachrichten erst nach der Übermittlung der Nachricht, bei der ein Fehler aufgetreten ist, übermittelt werden.

  • Wenn für einen Solicit-Response-Sendeport die Eigenschaft "Senden nachfolgender Nachrichten bei aktuellem Nachrichtenfehler beenden" auf truefestgelegt ist und wenn die wiederherstellbare Austauschverarbeitung für die Disassemblierungsphase der Empfangspipeline für die Antwort konfiguriert ist, beendet der Sendeport das Senden von Nachrichten nicht (d. h. der instance wird nicht angehalten), wenn ein wiederherstellbarer Fehler beim Disassemblieren der Antwort vorliegt.

  • Stellen Sie vor dem Löschen eines geordneten Sendeports sicher, dass diesem keine Instanzen zugeordnet sind. Wenn zugeordnete Instanzen vorhanden sind, müssen Sie diese vor dem Löschen des Sendeports beenden.

Geordnete Übermittlung an den Dateitransport

Nachrichten werden am Dateiadapter sequenziell empfangen. Der Dateiadapter kann an eine einzelne Datei Nachrichten anfügen oder eine Dateifolge schreiben, was zu folgenden Ergebnissen führt:

  • Wenn Nachrichtendaten an eine Datei angefügt werden, werden einzelne Nachrichten geordnet angefügt. Die Verwendung der Option zur geordneten Übermittlung an einem Sendeport, der den Dateiadapter verwendet, ist nur sinnvoll, wenn der Sendetransport im Anfügemodus arbeitet.

  • Wenn Nachrichten in einzelne Dateien geschrieben werden, spiegelt sich die Reihenfolge in den Dateinamen wieder, die in der entsprechenden Reihenfolge benannt werden. In diesem Fall geben bei vom Adapter geschriebenen Dateien die Dateisystemeigenschaften, die sich auf die Chronologie beziehen (z. B. Uhrzeit, zu der die Datei erstellt oder geändert wurde), nicht unbedingt die Reihenfolge wieder, in der die Nachrichten empfangen wurden.

Auswirkungen der geordneten Übermittlung auf die Leistung

Hinweis

Ab BizTalk Server 2020 kann bei dynamischen Sendeports mit geordneter Übermittlung, bei denen die Bestellung nicht über verschiedene ausgehende Standorte hinweg verwaltet werden muss, ein höherer Durchsatz erreicht werden, wenn mehrere Sendeportinstanzen zum parallelen Verarbeiten von Nachrichten an verschiedene ausgehende Standorte gesendet werden.

Um Nachrichten geordnet übermitteln zu können, muss BizTalk Server die Verarbeitung von geordneten Nachrichten an verschiedenen Stellen auf dem Weg serialisieren, den Nachrichten durchlaufen. Dies wirkt den Techniken der dezentralen Skalierung entgegen, z. B. der Verwendung mehrerer Hostinstanzen für die parallele Verarbeitung von Nachrichten. Wenn die geordnete Übermittlung verwendet wird, können selbst Ports, die für die Ausführung mehrerer Hostinstanzen konfiguriert sind, auf nur einer Hostinstanz ausgeführt werden, um die geordnete Übermittlung sicherzustellen. In diesem Fall bleibt jedoch die Hochverfügbarkeit erhalten, da bei einem Fehler bei einer Hostinstanz, die geordnete Nachrichten verarbeitet, die Nachricht, bei der ein Fehler aufgetreten ist, auf einer anderen verfügbaren Hostinstanz erneut verarbeitet wird.

Wenn Die Bestellungsübermittlung aktiviert ist, beträgt das Standardintervall für Wiederholungen 5 Minuten. Legen Sie zum Optimieren der Leistung das Wiederholungsintervall auf den niedrigsten Wert (1 Minute) fest. Die Eigenschaft Wiederholungsintervall akzeptiert möglicherweise einen Wert von null (0), aber null (0) ist ungültig. Die Wiederholungsanzahl kann auch auf die Anzahl der erforderlichen Wiederholungen abgestimmt werden. Wenn Sie beispielsweise wissen, dass die Anforderung in <1 Minute verarbeitet werden soll und das Sendeportziel immer zugänglich ist, legen Sie beide Werte auf 1 fest.

Um die Wiederholungswerte zu ändern, wechseln Sie zu Konfigurieren der erweiterten Transportoptionen für einen Sendeport.

Weitere Informationen zur geordneten Übermittlung finden Sie in den folgenden Themen:

BizTalk: End-to-End-geordnete Nachrichtenverarbeitungsoptionen

BizTalk: Bestellte Zustellung

Weitere Informationen

Geordnete Übermittlung von Nachrichten mit dem MSMQ-Adapter
Geordnete Übermittlung von Nachrichten mit dem MQSeries-Adapter