Freigeben über


Aggregator (BizTalk Server-Beispiel)

Dieses Beispiel zeigt, wie Nachrichtenaggregationsfunktionen mithilfe von Orchestrierung und Pipelines erstellt werden. Sie werden eine Orchestrierung erstellen, die insbesondere die folgenden Aufgaben übernimmt:

  1. Empfangen einer Sammlung von korrelierten Nachrichten. Nachrichten werden basierend auf den Zielpartner-URI-Informationen korreliert, die aus dem Nachrichteninhalt extrahiert werden.

  2. Aggregieren empfangender Nachrichten in einen Austauschbatch durch Ausführen einer XML-Sendepipeline.

  3. Erstellen einer XML-Austauschnachricht pro Minute oder sobald genügend Nachrichten für die Aggregation vorhanden sind.

Speicherort dieses Beispiels

<Beispielpfad>\Pipelines\Aggregator

In der folgenden Tabelle werden die Dateien für dieses Beispiel aufgelistet.

Datei(en) BESCHREIBUNG
Aggregator.sln Visual Studio-Projektdatei für das Beispiel.
AggretatorBinding.xml Bindungsdatei für das Beispiel.
Cleanup.bat Wird zum Aufheben der Bereitstellung von Assemblys und zum Entfernen aus dem globalen Assemblycache (GAC) verwendet. Entfernt Sende- und Empfangsports. Entfernt nach Bedarf virtuelle Verzeichnisse von Microsoft Internetinformationsdienste (IIS).
Setup.bat Dient zum Erstellen und Initialisieren dieses Beispiels.
Im Ordner Aggregate:

Aggregate.btproj
BizTalk-Projekt für die Aggregationsorchestrierung.
Im Ordner Aggregator:

Aggregate.odx
Orchestrierung, die korrelierte Nachrichten erfasst und diese dann mithilfe einer Sendepipeline in einem Austausch zusammenfasst.
Im Ordner Aggregate:

SuspendMessage.odx
Orchestrierung, die zum Anhalten von Nachrichten verendet wird, die nicht in der Aggregationsorchestrierung verarbeitet werden können.
Im Ordner PipelinesAndSchemas:

FFReceivePipeline.btp
Empfangspipeline mit einem Flatfile-Disassembler.
Im Ordner PipelinesAndSchemas:

Instance1.txt, Instance2.txt, Instance3.txt, Instance4.txt
Dokumentinstanzen für das Beispiel. Instance1.txt und Instance2.txt sollten einem Austausch für Zielpartner http://www.contoso.comhinzugefügt werden, während Instance3.txt und Instance4.txt einem Austausch für Zielpartner http://www.northwind.comhinzugefügt werden sollten.
Im Ordner PipelinesAndSchemas:

Invoice.xsd, InvoiceEnvelope.xsd
Dokumentschema und Umschlagschema für den Ausgabeaustausch.
Im Ordner PipelinesAndSchemas:

PipelinesAndSchemas.btproj
BizTalk-Projekt für die Schemas und Pipelines.
Im Ordner PipelinesAndSchemas:

PropertySchema.xsd
Eigenschaftenschema für das Beispiel.
Im Ordner PipelinesAndSchemas:

XMLAggregatingPipeline.btp
Sendepipeline, die von der Orchestrierung zum Zusammenstellen erfasster Nachrichten in einem XML-Austausch verwendet wird.

Erstellen und Initialisieren des Beispiels

Mithilfe des folgenden Verfahrens können Sie das Beispiel Aggregator erstellen und initialisieren.

So erstellen und initialisieren Sie das Aggregator-Beispiel

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Beispielpfad>\Pipelines\Aggregator

  2. Führen Sie die Datei "Setup.bat" aus, von der folgende Aktionen ausgeführt werden:

    • Erstellen der Eingabeordner (In) und der Ausgabeordner (Out) für dieses Beispiel im folgenden Ordner:

      <Beispielpfad>\Pipelines\Aggregator

    • Kompilieren der Visual Studio-Projekte für dieses Beispiel.

    • Erstellen einer neuen Anwendung namens „Aggregator Sample“ und Bereitstellen der Beispielassemblys in dieser Anwendung.

    • Erstellen und Binden des BizTalk Server-Empfangsspeicherorts sowie der Sende- und Empfangsports.

    • Eintragen und Starten der Orchestrierung, Aktivieren des Empfangsspeicherorts und Starten des Sendeports.

      Wenn Sie die Projekte in diesem Beispiel öffnen und erstellen möchten, ohne die Datei Setup.bat auszuführen, müssen Sie zunächst ein Schlüsselpaar mit starkem Namen mit dem entsprechenden .NET Framework-Hilfsprogramm für starke Namen (sn.exe) erstellen. Verwenden Sie dieses Schlüsselpaar zum Signieren der sich ergebenden Assemblys.

  3. Bevor Sie versuchen, dieses Beispiel ausführen, sollten Sie sicherstellen, dass BizTalk Server während des Erstellungs- und Initialisierungsvorgangs keine Fehler gemeldet hat.

    Wenn Sie von "Setup.bat" vorgenommene Änderungen rückgängig machen möchten, führen Sie "Cleanup.bat" aus. "Cleanup.bat" müssen Sie ausführen, bevor "Setup.bat" ein zweites Mal ausgeführt wird.

Ausführen des Beispiels

Verwenden Sie das folgende Verfahren, um das Beispiel „Aggregator“ auszuführen.

So führen Sie das Beispiel „Aggregator“ aus

  1. Öffnen Sie die Dateien Instance1.txt und Instance2.txt aus dem Ordner PipelinesAndSchemas, um ihren Inhalt zu untersuchen.

    Beachten Sie, dass in beiden Dateien das DestinationPartnerURI-Element den Wert http://www.contoso.comenthält. Dieser Wert wird verwendet, um diese beiden Nachrichten miteinander zu korrelieren, sodass sie einem Austausch hinzugefügt werden können.

    Ähnlich Instance3.txt und Instance4.txt Dateien ist das DestinationPatnerURI-Element auf http://www.northwind.comfestgelegt.

    Diese beiden Nachrichten werden zusammen einem anderen Austausch hinzugefügt.

  2. Fügen Sie Kopien der Dateien Instance1.txt, Instance2.txt, Instance3.txt und Instance4.txt in den Ordner In ein.

  3. Aggregationsorchestrierungen generieren Ausgabeaustauschvorgänge, sobald 10 Nachrichten erfasst wurden oder ein Timeout von einer Minute aufgetreten ist. Aus diesem Grund werden die Dateien im Ordner Out ggf. mit einer Verzögerung angezeigt.

    Damit der Timeout vermieden wird, können Sie die vier Eingabedateien vier weitere Male kopieren. Auf diese Weise wird die Generierung der Austauschvorgänge durch die Aggregationsorchestrierungen ausgelöst.

  4. Sehen Sie sich die XML-Dateien an, die im Ordner Out erstellt wurden. Es sollten zwei Dateien vorhanden sein – eine pro Zielpartner-URI.

    Öffnen Sie eine der Dateien, um ihren Inhalt zu untersuchen. Die Datei sollte einen XML-Austausch enthalten, der aus einem Umschlag und zwei darin enthaltenen XML-Dokumenten besteht.

    Hinweis

    Die Beispielimplementierung verursacht möglicherweise unter hoher Last in einem Konvoiszenario Nachrichten des Typs Übermittelt, nicht verarbeitet oder Mit gesperrten Nachrichten abgeschlossen. Dieser Vorgang tritt immer auf, wenn eine Nachricht an einen Geschäftsprozess weitergeleitet wird, der aktuell beendet wird, oder wenn unerwartete Nachrichten in einem Geschäftsprozess eingehen.

Weitere Informationen

Pipelines (Ordner für BizTalk Server-Beispiele)