BAM 코드 유지 관리를 위한 고려 사항
BAM을 사용하도록 애플리케이션을 계측할 방법을 결정할 때는 요구 사항이 변경될 가능성을 고려해야 합니다. Microsoft.BizTalk.Bam.EventObservation.EventStream 클래스 중 하나에서 메서드를 호출하여 모니터링되고 있는 데이터를 쓰는 경우 실제로는 관찰 모델이 애플리케이션에 "하드 코딩"됩니다. 모니터링되는 데이터를 변경해야 하는 경우 애플리케이션을 오프라인으로 전환하고 코드를 변경하고 애플리케이션을 다시 컴파일한 다음 업데이트된 애플리케이션을 재배포합니다.
또는 Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor 클래스에서 메서드를 호출하여 애플리케이션을 계측할 수 있습니다. Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor 클래스는 구성 파일을 참조하여 모니터링할 이벤트 및 데이터를 결정합니다. Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor 클래스를 사용하면 코드를 한 번 계측한 다음 애플리케이션을 오프라인으로 전환하지 않고도 메타데이터를 업데이트하여 모니터링되고 있는 데이터를 변경할 수 있습니다.
EventStream 개체를 사용하여 애플리케이션 계측
이 방법은 잘 알려진 특정 모니터링 요구 사항으로 전용 애플리케이션을 빌드하려는 경우에 적용되며 간단합니다. 이 방법을 사용하도록 결정하기 전에 다음 질문에 대답해야 합니다.
BAM 마일스톤이란 무엇이며 코드의 어느 위치에서 발생합니까?
어떤 데이터를 모니터링할 예정이며 코드에서 해당 데이터를 사용할 수 있는 시점과 위치는 언제/어디입니까?
이러한 질문 중 하나에 대한 답변이 변경될 가능성이 있는 경우 대신 Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor 개체를 사용하여 애플리케이션을 계측하는 것이 좋습니다.
이 "하드 코드된" 방식을 따르는 경우에는 요구 사항에 따라 Microsoft.BizTalk.Bam.EventObservation.DirectEventStream, Microsoft.BizTalk.Bam.EventObservation.BufferedEventStream, MessagingEventStream (파이프라인 구현에서) 또는 OrchestrationEventStream (오케스트레이션 구현에서) 클래스에서 메서드를 호출하면 됩니다.
BAMInterceptor 개체를 사용하여 애플리케이션 계측
이 방법은 다음 경우에 권장됩니다.
데이터의 가시성과 애플리케이션의 성능 간에 균형을 유지해야 하며 런타임에 모니터링되는 데이터를 제어할 수 있어야 하는 경우
애플리케이션이 큰 XML 메시지를 처리하며 최종적으로 데이터가 모니터링에 중요한 경우
애플리케이션을 중지하고 다른 데이터를 모니터링하도록 코드를 변경할 수 없는 경우
이 방법에서는 Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor 클래스의 메서드를 사용하여 일반적인 방식으로 애플리케이션을 계측합니다. 인터셉터에 다른 구성을 전달하여 BAM이 모니터링하는 데이터를 변경할 수 있습니다.
TPE(추적 프로필 편집기)를 사용하여 BAM이 BizTalk 오케스트레이션에서 수집하는 데이터를 변경할 수 있습니다.