Verwenden mehrerer Fortsetzungen
Die Verwendung des Überwachungsprofil-Editors in Umgebungen mit mehreren Aktivitäten setzt ein Verständnis eines Szenarios voraus, bei dem Aktivitäten überwacht werden, damit Empfangsports, Orchestrierungen sowie Sendeports in der richtigen Reihenfolge zugeordnet werden.
Bei einem Überwachungsprofil legt der Überwachungsprofil-Editor Anfang und Ende der Aktivität automatisch fest. Die Aktivität beginnt mit dem Erfassen der ersten Daten und endet mit dem Erfassen der letzten Daten.
In den meisten Fällen ist das Erstellen einer einzelnen Fortsetzung, wie der Fortsetzung zwischen zwei Orchestrierungen, ein unkomplizierter Vorgang für Entwickler. Die Verwendung des Überwachungsprofil-Editors bei mehreren Fortsetzungen ist schwieriger. In einem Szenario mit mehreren Fortsetzungen umfasst eine BAM-Aktivität (Business Activity Monitoring) mehrere Empfangsports, Orchestrierungen und Sendeports. Um die BAM-Daten in einem Datensatz zu erfassen, müssen zwischen den einzelnen BizTalk Server-Zeitplänen Fortsetzungen erstellt werden. Dieser Prozess ist möglicherweise sehr komplex, wenn er über die Benutzeroberfläche des Überwachungsprofil-Editors ausgeführt wird.
In diesem Thema wird das Erstellen von einzelnen und mehreren Fortsetzungen anhand verschiedener Szenarien erläutert.
Beschreibung des Ausgangsszenarios – Mehrere Empfangsports, Orchestrierungen und Sendeports
Das Szenario besteht aus einem BizTalk-Server mit mehreren Empfangsports (E), Orchestrierungen (O) und Sendeports (S). Die allgemeine Kontexteigenschaft interchangeID wird zum Verknüpfen der Fortsetzungen verwendet. Zum Verknüpfen kann jede Kontexteigenschaft, z. B. activityID, oder der eindeutige Bezeichner verwendet werden. Der eigentliche Inhalt ist für die Erläuterung des Szenarios nicht relevant.
In diesem Szenario werden keine genaueren Angaben hinsichtlich Datenelement, Meilenstein und Kontexteigenschaftswert gemacht, die von diesen Ports und Orchestrierungen überwacht werden. Dieser Teil der Zuordnung richtet sich nach der Geschäftslogik. Das Ziel besteht darin, sämtliche BAM-Daten aus allen Ports und Orchestrierungen in einer einzigen Zeile der Tabelle mit den abgeschlossenen Aktivitäten zu erfassen. Die verschiedenen Möglichkeiten, mit denen eine Nachricht empfangen und von Orchestrierungen verarbeitet werden kann, bieten interessante Herausforderungen und Lösungen.
Hinweis
Das Szenario mit einem Port oder einer Orchestrierung kann als Sonderfall des Szenarios mit vielen Ports und vielen Orchestrierungen angesehen werden.
Szenariolösung 1 – Ein Empfangsport und eine Orchestrierung
In diesem Szenario geht eine Nachricht an genau einem der Empfangsports (E1) ein und wird dann von genau einer der Orchestrierungen (O1) verarbeitet.
Die entsprechende Fortsetzung wird wie folgt erstellt:
Erstellen Sie eine Fortsetzung im Ordner mit der Aktivitätsstrukturansicht des Überwachungsprofils.
Wählen Sie das Kontexteigenschaftenschema aus, indem Sie auf die Schaltfläche Ereignisquelle auswählen und dann auf das Menüelement Kontexteigenschaft auswählen klicken.
Suchen Sie die eigenschaft interchangeId in der Liste Name der Kontexteigenschaft , und wählen Sie sie aus.
Ordnen Sie im Eigenschaftsschema die Eigenschaft interchangeID dem soeben erstellten Fortsetzungsordner zu.
Klicken Sie mit der rechten Maustaste in der Aktivitätsstruktur auf den neuen Knoten interchangeID, und wählen Sie dann die Ports aus, von denen zugeordnet werden soll.
Wählen Sie im angezeigten Dialogfeld Ports auswählen alle N-Empfangsports aus.
Erstellen Sie in der Aktivitätsstruktur einen ContinuationID-Ordner.
Öffnen Sie jede Orchestrierung, indem Sie auf die Schaltfläche Ereignisquelle auswählen und dann auf das Menüelement Orchestrierungszeitplan auswählen klicken. Klicken Sie für jede Orchestrierung mit der rechten Maustaste auf eine Form in der Orchestrierung, und ordnen Sie dann die Kontexteigenschaft interchangeID der neu erstellten ContinuationID zu.
Bei einer Bereitstellung von drei Orchestrierungen sieht das Überwachungsprofil wie folgt aus:
Szenariolösung 2 – Mehrere Orchestrierungen und ein einziger Empfangsport
In diesem Szenario geht eine Nachricht an genau einem der Empfangsports ein und wird von jeder einzelnen Orchestrierung verarbeitet. Hierfür wird die Nachricht gleichzeitig an alle Orchestrierungen gesendet.
In diesem Fall sind für jede Orchestrierung eine Fortsetzung und eine ContinuationID erforderlich. Der Prozess zum Erstellen der Fortsetzungen ähnelt den in Szenariolösung 1 beschriebenen Schritten. Bei einer Bereitstellung mit drei Orchestrierungsvorgängen sieht Ihr resultierendes Nachverfolgungsprofil etwa wie folgt aus:
Szenariolösung 3 – Inhaltsbasiertes Routing (CBR)
Im folgenden Szenario wird eine Lösung mit inhaltsbasiertem Routing definiert. Eine Nachricht geht an genau einem der Empfangsports ein und wird an genau einen der Sendeports gesendet. Das Routing wird auf der Grundlage eines Kontexteigenschaftswerts in der Nachricht ausgeführt. In diesem Fall ist eine einzige Fortsetzung erforderlich. Die Zuordnung sieht in etwa wie folgt aus:
Hinweis
Diese Zuordnung ist ebenfalls gültig für Nachrichten, die an genau einem der Empfangsports eingehen und an alle Sendeports gesendet werden.
Szenariolösung 4 – Eine Orchestrierung, mehrere Sendeports
In diesem Szenario gibt es mehrere Senden. -Ports. Eine Nachricht wird von genau einer der Orchestrierungen verarbeitet, die von den Verarbeitungsregeln bestimmt wird, und an alle Sendeports gesendet. In diesem Fall ist eine einzige Fortsetzung erforderlich. Die Zuordnung sieht in etwa wie folgt aus:
Szenariolösung 5 – Sequenzielle Orchestrierungen
In diesem Szenario wird eine Nachricht nacheinander von jeder Orchestrierung verarbeitet. Die Nachricht wird über die Fortsetzung an die jeweils nächste Orchestrierung weitergegeben. Die Zuordnung sieht in etwa wie folgt aus:
Erfassen von Daten in einer asynchronen Umgebung
Wenn Sie Fortsetzungen erstellen, erwartet BAM die eingehenden Daten. In einer asynchronen Umgebung kann möglicherweise keine Antwort von einem Back-End-Prozess empfangen werden.
Wenn die Antwortdaten nicht eingehen, wartet die Aktivitätsinstanz für unbegrenzte Zeit. Die Aktivität kann nicht abgeschlossen werden, und die Datensätze verbleiben in den Tabellen der primären BAM-Importdatenbank. Im Fall einer lang ausgeführten Transaktion lässt sich nicht bestimmen, zu welchem Zeitpunkt die restlichen Daten eingehen. Es wird kein Timeout ausgelöst, da der Empfang der Daten von Geschäftslogik- und -prozessen abhängig ist und danach als abgeschlossen gekennzeichnet wird. Die Daten können am gleichen Tag oder, in Ausnahmefällen, im folgenden Jahr eingehen.
Die Lösung ist die Verwendung von verwandten Aktivitäten.
Trennen Sie die Aktivität in zwei Aktivitäten. Verknüpfen Sie die beiden Aktivitäten miteinander, und verknüpfen Sie dann die Antwort mit der ursprünglichen Aktivität.
Weitere Informationen zu verwandten Aktivitäten finden Sie unter Aktivitätsbeziehungen.