Freigeben über


'EventStream'-Klassen

Die EventStream-APIs für BAM befinden sich im Microsoft.BizTalk.BAM.EventObservation-Namespace. Für das Verwenden der APIs im Code müssen Sie folgende DLL-Dateien auf dem Entwicklungscomputer installieren:

  • Microsoft.BizTalk.BAM.EventObservation.dll

  • Microsoft.Biztalk.BAM.Xlangs.dll: Diese DLL ist beim Codieren von Orchestrierungsereignisdatenströmen erforderlich.

  • Microsoft.BizTalk.Pipeline.dll: Diese DLL ist erforderlich, wenn Sie Codierungspipelinekontexte für Messagingereignisdatenströme verwenden.

    Fügen Sie die DLL-Datei dem Projektverweis hinzu, und fügen Sie den Namespace anhand der folgenden Anweisung in den Code ein:

using Microsoft.BizTalk.Bam.EventObservation;  

Klassen

Name BESCHREIBUNG
DirectEventStream (DES) Synchrone, ohne Verzögerung
BufferedEventStream (BES) Asynchron, hoher Durchsatz, geringe Latenz
OrchestrationEventStream (OES) Asynchron, Bestandteil von BizTalk-Orchestrierungstransaktionen
'IPipelineContext'-Schnittstelle Asynchron, Bestandteil von BizTalk Server-Pipelinetransaktionen. Wird zum Erstellen von Messaging-Ereignisstreams (MES) verwendet.

Wählen Sie die API anhand folgender Faktoren aus:

  • Wenn die Latenz wichtig ist, sollte Sie DES wählen, da dabei die Daten synchron mit der primären BAM-Importdatenbank dauerhaft erhalten bleiben. Mit Ausnahme von DES sind alle anderen EventStream-Klassen asynchron und weisen eine gewisse Wartezeit auf. Die Daten bleiben zuerst in der MessageBox-Datenbank und werden anschließend von TDDS verarbeitet, das Daten in die BAMPrimaryImport-Datenbank verschiebt.

  • Wenn Leistung und Durchsatz beim Einfügen von Ereignissen relevant sind, wählen Sie eine asynchrone API aus.

  • Wenn Sie eine Anwendung schreiben, die auf einem Computer ohne BizTalk Server ausgeführt wird, verwenden Sie DES und BES. (Das bedeutet, dass diese APIs in Nicht-BizTalk-Anwendungen verwendet werden können.)

  • Wenn die Anwendung auf einem Computer mit BizTalk Server ausgeführt wird, verwenden Sie MES und OES. (Diese APIs sind nur über BizTalk-Anwendungen verfügbar.)

    • Wenn BAM-Ereignisse synchron mit Pipelinetransaktionen dauerhaft erhalten bleiben sollen, müssen Sie einen Messaging-Ereignisstream verwenden.

    • OES entspricht MES, wird jedoch für BizTalk-Orchestrierungen verwendet.

    Es gibt jedoch Szenarien, in denen Sie mehrere EventStream-Typen gemeinsam verwenden sollten. Bei einer Pipelineverarbeitung empfiehlt es sich z. B., die betreffenden Daten in BAM zu erfassen, und zwar unabhängig davon, ob die Pipeline einen Rollback der Transaktion ausführt. Sie sollten insbesondere Daten über die Anzahl der fehlgeschlagenen Nachrichten oder der Wiederholungen während der Pipelineverarbeitung erfassen. Um die Daten in dieser Situation zu erfassen, sollten Sie BES verwenden.

    Alle asynchronen Ereignisstreams (BES, MES und OES) speichern Daten zunächst in der BizTalk MessageBox-Datenbank. Die Daten werden regelmäßig vom TDDS (Tracking Data Decode Service, Decodierungsdienst für Überwachungsdaten) verarbeitet und in der primären BAM-Importdatenbank gespeichert.

Hinweis

Um zu vermeiden, dass EventStream-Aufrufe einen Engpass in einer BizTalk-Anwendung verursachen, wird die Verwendung asynchroner APIs empfohlen.

In diesem Abschnitt