Welcome

首页 / 软件开发 / .NET编程技术 / WF从入门到精通(第五章):workflow跟踪

WF从入门到精通(第五章):workflow跟踪2010-06-03 cnblogs GuoYong.Che学习完本章,你将掌握:

1.workflow的可选服务

2.创建一个事件跟踪数据库

3.激活事件跟踪服务

4.创建一个自定义跟踪

5.查看你的workflow的跟踪信息

目前为止,我们看过workflow的一些基本对象。我们通过活动创建workflow任务,它们在执行时由WorkflowInstance对象进行管理。workflow实例由WorkflowRuntime编入队列并进行控制。但WF不只是为我们提供了这些对象,它也为我们提供了一些服务来和这些对象一起协同工作。

可插拔(可选)服务

工作流服务是一些附加的软件库,你的工作流能使用它来完成它们的的任务。有些服务是非必须可选的,如本章介绍的跟踪服务。而其它的服务需要你的工作流必须执行它。

一个可插拔服务是这样一个服务,它能像照菜单点菜一样被选中以执行特定任务。例如,有管理线程的服务、跟踪的服务、事务服务等等。你可选择那些适合你的工作流的服务。你甚至还能自己进行创建。

哪这些服务看起来像什么?他们能为我们做什么?表5-1列出了可获取的基本服务,它很好地为你描述了这些可获取的服务的概念,并告诉你他们能做什么。

当中的大部分服务我们不会直接使用。我们普遍的用法是使用从这些基本服务派生出的服务。

表5-1 基本工作流服务
服务功能
WorkflowPersistenceService抽象基类,派生出所有持久化的服务。
WorkflowQueuingService该基类为你提供了一些方法,使你能用来管理和一个工作流实例相关的工作流队列。
WorkflowRuntimeService抽象基类,派生出工作流运行时的内核服务。
WorkflowScheddulerService所有在工作流运行时宿主上创建线程以运行工作流实例的类的基类。
WorkflowSubscriptionService那些管理订阅(Subscriptions)工作流运行时类的基类。
WorkflowTransactionService所有事务服务的基类。
TrackingService一个抽象基类,在跟踪服务和运行时跟踪基础结构(infrastructure)间提供了基本的接口。

请记住这些是基类。我们使用的服务实际上从它们派生。例如,当我们运行一个工作流实例时,有时需为实例创建一个线程去使用。DefaultWorkflowSchedulerService正是做这个工作的,它使用WorkflowSchedulerService作为它的基类。但假如你想自己提供这个线程,你可使用ManualWorkflowSchedulerService代替。在本章中我们将看到由SqlTrackingService提供的跟踪服务,它使用了TrackingService作为它的基类。

“可插拔(可选)”一词部分来源于下面的情况:你可能考虑在任何时间上你都可能需要使用一个调度程序服务,运行时服务,入队和订阅(定时器)服务。但你还能在工作中进一步添加持久化和跟踪服务,以及外部数据通信服务。