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