Considerazioni relative alla manutenzione di codice BAM
Quando si decide la modalità di strumentazione dell'applicazione per l'utilizzo di BAM, è opportuno valutare le probabilità di cambiamento dei requisiti. Se si chiamano metodi su una delle classi Microsoft.BizTalk.Bam.EventObservation.EventStream per la scrittura dei dati sottoposti a monitoraggio, si esegue essenzialmente l'hardcoding del modello di osservazione nell'applicazione. Di conseguenza, se i dati da monitorare devono essere modificati, sarà necessario impostare l'applicazione in modalità offline, modificare il codice, ricompilare l'applicazione e quindi ridistribuire l'applicazione aggiornata.
In alternativa, è possibile instrumentare l'applicazione chiamando metodi sulla classe Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor . La classe Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor fa riferimento a un file di configurazione per determinare gli eventi e i dati da monitorare. Mediante la classe Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor è possibile instrumentare una volta il codice e quindi modificare i dati monitorati aggiornando i metadati, senza dover impostare l'applicazione in modalità offline.
Strumentazione dell'applicazione mediante l'oggetto EventStream
Questo approccio è più semplice ed è in genere applicabile quando si crea un'applicazione dedicata con requisiti di monitoraggio specifici e noti. Prima di decidere di utilizzare questo approccio, è necessario conoscere le risposte alle seguenti domande:
Che cosa sono le attività cardine BAM e in quale parte del codice si trovano?
Quali dati verranno monitorati? Quando e dove tali dati sono disponibili nel codice?
Se è probabile che la risposta a una di queste domande cambi, è consigliabile valutare la possibilità di instrumentare l'applicazione usando l'oggetto Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor .
Questo approccio basato su hardcoding consiste semplicemente nella chiamata di metodi sulla classe Microsoft.BizTalk.Bam.EventObservation.DirectEventStream, Microsoft.BizTalk.Bam.EventObservation.BufferedEventStream, MessagingEventStream (dalle implementazioni di pipeline) o OrchestrationEventStream (dalle implementazioni di orchestrazione), a seconda delle necessità.
Strumentazione dell'applicazione mediante l'oggetto BAMInterceptor
Questo è l'approccio migliore quando:
È necessario gestire un compromesso tra visibilità dei dati e prestazioni dell'applicazione e si desidera avere il controllo dei dati monitorati in fase di esecuzione.
L'applicazione elabora messaggi XML di grandi dimensioni, in cui qualsiasi dato può rivelarsi importante ai fini del monitoraggio.
Non è accettabile interrompere l'applicazione e modificare il codice per monitorare dati differenti.
In questo approccio si instrumenta l'applicazione in modo generico usando i metodi della classe Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor . Passando diverse configurazioni all'intercettore è possibile modificare i dati monitorati da BAM.
Per modificare i dati raccolti da BAM da un'orchestrazione BizTalk è possibile utilizzare l'Editor profili di rilevamento.
Vedere anche
Uso di un'attività
Informazioni sull'intercettore BAM
BAM API (esempio di BizTalk Server)