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.