使用 BAM 监视面向服务的解决方案
该解决方案使用 Business Activity Monitoring (BAM) API 监视 所有版本的 CustomerService 业务流程中的活动。 更具体地说,它使用新的 OrchestrationEventStream 对象。
OrchestrationEventStream 对象概述
新的 OrchestrationEventStream 对象支持从业务流程进行跟踪和监视。 捕获的信息在事务性上与业务流程状态一致。 例如,如果在执行业务流程的过程中重新启动业务流程主机实例,则该业务流程实例将从其最后一个持久化点重新启动。 OrchestrationEventStream 类可确保捕获的数据在事务上与业务流程实例的最后一个持久性点保持一致。 所有 OrchestrationEventStream 方法都是静态的,因此业务流程不需要创建它的实例。
注意
若要使用 OrchestrationEventStream 对象,需要添加对 Microsoft.BizTalk.Bam.XLANGs 和 Microsoft.BizTalk.Bam.EventObservation 程序集的 引用。 尽管 OrchestrationEventStream 对象位于 Microsoft.BizTalk.Bam.EventObservation 命名空间中,但它驻留在 Microsoft.BizTalk.Bam.XLANGs 程序集中。
尽管跟踪配置文件编辑器 (TPE) 是使用 BAM 的首选方式,但 TPE 不能捕获业务流程变量值,也不能处理自定义对象。 该解决方案使用 BAM API 来克服这些限制。
有关 BAM 的一般信息,请参阅 使用业务活动监视。 有关跟踪配置文件编辑器 (TPE) 的信息,请参阅 跟踪配置文件编辑器。
包装 OrchestrationEventStream 对象
面向服务的解决方案使用 ServiceLevelTracking 类包装 OrchestrationEventStream 类。 ServiceLevelTracking 类提供特定于应用程序的里程碑方法,并隐藏使用 OrchestrationEventStream 的一些详细信息。
与 OrchestrationEventStream 中一样, ServiceLevelTracking 的所有方法都是静态的。 因此,业务流程或自定义组件不需要创建其实例。 开始跟踪活动的方法 TrackingBeginRequest 返回唯一的活动实例 ID。 所有后续跟踪事件都必须与此活动实例 ID 相关联才能正确捕获服务级别数据,因为它对于 CustomerService 业务流程的实例是唯一的。