Condividi tramite


Classi EventStream

Le API EventStream per BAM risiedono nello spazio dei nomi Microsoft.BizTalk.BAM.EventObservation. Per creare codice a fronte delle API è necessario installare le seguenti DLL nel computer di sviluppo:

  • Microsoft.BizTalk.BAM.EventObservation.dll

  • Microsoft.Biztalk.BAM.Xlangs.dll: questa DLL è necessaria quando si codifica per i flussi di eventi di orchestrazione.

  • Microsoft.BizTalk.Pipeline.dll: questa DLL necessaria quando si usano contesti di pipeline di codifica per i flussi di eventi di messaggistica.

    Aggiungere la DLL ai riferimenti del progetto e includere lo spazio dei nomi nel codice con la seguente istruzione using:

using Microsoft.BizTalk.Bam.EventObservation;  

Classi

Nome Descrizione
DirectEventStream (DES) Sincrona, nessuna latenza
BufferedEventStream (BES) Asincrona, alta velocità, latenza minima
OrchestrationEventStream (OES) Asincrona, partecipa alle transazioni delle orchestrazioni di BizTalk
Interfaccia IPipelineContext Asincrona, partecipa alle transazioni della pipeline di BizTalk Server. Utilizzata per creare MES.

È consigliabile scegliere un'API in base ai fattori seguenti:

  • Se la latenza costituisce un problema, scegliere DES, in cui i dati vengono resi persistenti nel database di importazione primaria BAM. Ad eccezione di DES, tutte le altre classi EventStream sono asincrone e hanno una certa latenza. I dati vengono innanzitutto resi persistenti in MessageBox e quindi elaborati da TDDS, che li sposta nel database BAMPrimaryImport.

  • Se si desidera concentrarsi sulle prestazioni e la velocità di inserimento degli eventi, scegliere un'API asincrona.

  • Se si sta scrivendo un'applicazione da eseguire in un computer nel quale non è installato BizTalk Server, utilizzare DES e BES. .In altri termini, è possibile utilizzare queste API in applicazioni non BizTalk.

  • Se l'applicazione verrà eseguita in un computer nel quale è installato BizTalk Server, utilizzare MES e OES. Queste API sono disponibili solo da applicazioni BizTalk.

    • Se si desidera che la persistenza degli eventi BAM sia sincronizzata con la transazione della pipeline, utilizzare MES.

    • OES è equivalente a MES, ma per le orchestrazioni BizTalk.

    Esistono casi in cui è preferibile utilizzare tipi EventStream eterogenei: ad esempio, nell'elaborazione di una pipeline, potrebbe essere utile acquisire i dati specifici presenti in BAM a prescindere dal fatto che la pipeline stia eseguendo il rollback della transazione. In particolare, è importante acquisire dati relativi al numero di messaggi non riusciti e al numero di tentativi eseguiti durante l'elaborazione della pipeline. In questa situazione, utilizzare BES per acquisire i dati.

    Tutti gli EventStreams asincroni (BES, MES e OES) rendono i dati persistenti in primo luogo nel database MessageBox BizTalk. Periodicamente i dati vengono elaborati e resi persistenti nel database di importazione primaria BAM dal servizio TDSS (Tracking Data Decode Service).

Nota

Per garantire che le chiamate a EventStream non creino un collo di bottiglia da un'applicazione BizTalk, è consigliabile utilizzare API asincrone.

Contenuto della sezione