使用 BAM 监视面向服务的解决方案

该解决方案使用 Business Activity Monitoring (BAM) API 监视 CustomerService 业务流程的所有版本中的活动。 更具体地说,它使用新的 OrchestrationEventStream 对象。

什么是 OrchestrationEventStream 对象?

新的 OrchestrationEventStream 对象使得可以从编排中进行跟踪和监控。 捕获的信息在事务一致性上与编排状态保持一致。 例如,如果业务流程主机实例在执行业务流程的中间重启,则业务流程实例将从实例的最后一个持久性点重新启动。 OrchestrationEventStream 类可确保捕获的数据在事务上与业务流程实例的最后一个持久性点保持一致。 所有 OrchestrationEventStream 方法都是静态的,因此业务流程不需要创建它的实例。

注释

若要使用 OrchestrationEventStream 对象,需要添加对 Microsoft.BizTalk.Bam.XLANGMicrosoft.BizTalk.Bam.EventObservation 程序集的引用。 虽然 OrchestrationEventStream 对象位于 Microsoft.BizTalk.Bam.EventObservation 命名空间中,但它驻留在 Microsoft.BizTalk.Bam.XLANG 程序集中。

尽管跟踪配置文件编辑器(TPE)是使用 BAM 的首选方法,但 TPE 无法捕获业务流程变量值,也不能处理自定义对象。 该解决方案使用 BAM API 来克服这些限制。

有关 BAM 的一般信息,请参阅 “使用业务活动监视”。 有关跟踪配置文件编辑器(TPE)的信息,请参阅 跟踪配置文件编辑器

封装 OrchestrationEventStream 对象

面向服务的解决方案使用 ServiceLevelTracking 类包装 OrchestrationEventStream 类。 ServiceLevelTracking 类提供特定于应用程序的里程碑方法,并隐藏使用 OrchestrationEventStream 的一些详细信息。

OrchestrationEventStream 中一样, ServiceLevelTracking 的所有方法都是静态的。 因此,业务流程或自定义组件不需要创建它的实例。 开始跟踪活动的方法 TrackingBeginRequest 返回唯一的活动实例 ID。 所有后续跟踪事件都必须与此活动实例 ID 相关联才能正确捕获服务级别数据,因为它对 CustomerService 业务流程的实例是唯一的。

另请参阅

开发面向服务的解决方案
面向服务的解决方案的实现亮点