SharePoint 2010调试(2):开发人员面板
开发人员面板是SharePoint 2010新增的一个功能,它可以根据需要在页面下方显示当前页面从加载到呈现完毕所执行的各种步骤的耗时情况,以及Web服务器、声明和关键事件、数据库查询、服务调用、SPRequest、Web部件事件偏移等耗时情况。
开发人员面板是SharePoint 2010新增的一个功能,它可以根据需要在页面下方显示当前页面从加载到呈现完毕所执行的各种步骤的耗时情况,以及Web服务器、声明和关键事件、数据库查询、服务调用、SPRequest、Web部件事件偏移等耗时情况。
本文的作者是来自Connected Framework团队的Miguel Susffalich。 在之前的文章中,我们简单的介绍了WF 4.0 beta1中的跟踪机制,并且深入介绍了WF 4.0 beta1的跟踪配置。本文将继续解释跟踪参与者(Tracking Participants)是如何工作的、以及如何使用跟踪参与者来处理和存储工作流放出的跟踪记录。我们还将介绍现成的Event Tracing for Windows(ETW) 跟踪参与者以及如何通过它在事件查看器中查看跟踪记录。
上周我们介绍了WF 4.0 beta1中的跟踪机制。本文将继续深入介绍跟踪配置,并会解释如何使用它们来灵活地跟踪工作流的执行过程。
简单的说,跟踪服务是用来查看工作流的执行情况的功能。WF跟踪基础结构会检测工作流执行时发出的一些关键事件,并进行记录。例如,工作流在启动或完成时,就会发出跟踪记录。跟踪也可以提取与工作流变量相关联的业务相关数据。
SQL持久化和跟踪服务分别为工作流状态和跟踪信息提供了持久的存储。但是,它们并没有一起工作。具体来说,每个服务都会使用不同的数据库连接来进行操作。工作流Runtime也因此会使用多个数据库连接。如果跟踪服务开启了事务支持,则会导致额外的开销出现。当事务跨越多个连接时,微软分布式事务协调程序(Microsoft Distributed Transaction Coordinator,MSDTC)会接受事务的管理。MSDTC也会造成一些开销。WF为同时使用了SQL持久化和SQL跟踪服务的应用程序提供了优化方案:SharedConnectionWorkflowCommitWorkBatchService类。这个服务允许两个SQL服务共享一个连接(前提是这两个SQL服务的连接字符串是相同的)。
Windows Workflow 提供了可扩展可收缩的跟踪功能来捕捉和记录工作流的执行信息。对于接收到的工作流信息,跟踪服务会使用跟踪配置(tracking profile)来进行筛选。WF Runtime可以发送许多信息,包括工作流事件、活动状态更改、规则判断和我们的自定义检测数据(custom instrumentation data)。跟踪服务有能力决定如何处理接收到的数据,可以把它们记录到日志文件里,也可以保存到数据库中。跟踪服务会参与到工作流Runtime中来,以确保它记录的信息是一致并且持久的。
Windows Workflow 其实是一个Runtime,而不是应用程序。在启动工作流之前,宿主进程必须先加载并运行工作流Runtime。宿主进程告诉Runtime要创建什么类型的工作流,Runtime则负责管理工作流的生命周期并通知宿主进程重要的生命周期事件,比如工作流的完成和终结。Runtime并不挑剔它的宿主,宿主可以是台式机上的智能客户端应用程序,也可以是机架上的服务器中运行的ASP.NET进程。所有宿主进程需要做的只是加载.NET 3.0工作流程序集而已。