EventStream-Klassen

Die EventStream-APIs für BAM befinden sich im Namespace "Microsoft.BizTalk.BAM.EventObservation". Um code für die APIs zu codieren, müssen Sie die folgenden DLLs auf Ihrem Entwicklungscomputer installieren:

  • Microsoft.BizTalk.BAM.EventObservation.dll

  • Microsoft.Biztalk.BAM.Xlangs.dll: Diese DLL ist beim Codieren für Orchestration-Ereignisstreams erforderlich.

  • Microsoft.BizTalk.Pipeline.dll: Diese DLL ist erforderlich, wenn Codepipelinekontexte für Messaging-Ereignisdatenströme verwendet werden.

    Fügen Sie die DLL zu Ihrem Projektverweis hinzu, und fügen Sie den Namespace in Ihren Code mit der folgenden using-Anweisung ein:

using Microsoft.BizTalk.Bam.EventObservation;  

Klassen

Name Beschreibung
DirectEventStream (DES) Synchrone, keine Latenz
BufferedEventStream (BES) Asynchroner, hoher Durchsatz, einige Latenz
OrchestrationEventStream (OES) Asynchrone Teilnahme an BizTalk-Orchestrierungstransaktionen
IPipelineContext-Schnittstelle Asynchron, nimmt an BizTalk Server-Pipelinetransaktionen teil. Wird zum Erstellen von Messaging-Ereignisstreams (MES) verwendet.

Sie sollten eine API basierend auf den folgenden Faktoren auswählen:

  • Wenn Ihre Sorge die Latenz ist, wählen Sie DES aus, bei dem Daten synchron zur primären BAM-Importdatenbank gespeichert werden. Mit Ausnahme von DES sind alle anderen EventStream-Klassen asynchron und weisen eine gewisse Latenz auf. Die Daten werden zuerst in MessageBox gespeichert und anschließend von TDDS verarbeitet, wodurch Daten in die BAMPrimaryImport-Datenbank verschoben werden.

  • Wenn Ihr Problem die Leistung und der Durchsatz der Ereigniseinfügung ist, wählen Sie eine asynchrone API aus.

  • Wenn Sie eine Anwendung schreiben, die auf einem Computer ausgeführt wird, auf dem BizTalk Server nicht installiert ist, verwenden Sie DES und BES. (Mit anderen Worten: Diese APIs können in Nicht-BizTalk-Anwendungen verwendet werden.)

  • Wenn Ihre Anwendung auf einem Computer ausgeführt wird, auf dem BizTalk Server installiert ist, verwenden Sie MES und OES. (Diese APIs sind nur in BizTalk-Anwendungen verfügbar.)

    • Wenn die PERSISTENZ des BAM-Ereignisses mit pipelinetransaktion synchronisiert werden soll, sollten Sie einen Messaging-Ereignisstream verwenden.

    • OES ist das Äquivalent von MES, aber für BizTalk-Orchestrierungen.

    Es gibt Szenarien, in denen Sie EventStream-Typen kombinieren möchten. In einer Pipelineverarbeitung können Sie beispielsweise die bestimmten Daten in BAM erfassen, unabhängig davon, ob die Pipeline ein Rollback der Transaktion erfolgt. Insbesondere möchten Sie möglicherweise Daten darüber erfassen, wie viele Nachrichten fehlgeschlagen sind oder wie viele Wiederholungen während der Pipelineverarbeitung aufgetreten sind. Um die Daten in dieser Situation zu erfassen, sollten Sie BES verwenden.

    Alle asynchronen EventStreams (BES, MES und OES) speichern zuerst Daten in der BizTalk MessageBox-Datenbank. In regelmäßigen Abständen werden die Daten verarbeitet und von TDDS (Tracking Data Decode Service) in der PRIMÄREN IMPORT-Datenbank des BAM gespeichert.

Hinweis

Um sicherzustellen, dass EventStream-Aufrufe keinen Engpass aus einer BizTalk-Anwendung erstellen, empfehlen wir, asynchrone APIs zu verwenden.

In diesem Abschnitt