持久工作流的实时监控
“暂留的 WF 实例”部分会在持久工作流服务的暂留实例上显示“实时”指标。此指标是在调用“仪表板”时采用的,并且在暂留存储内将任何持久工作流实例的当前状态显示为已暂留。如同显示在其他两部分(“WCF 调用历史记录”和“WF 实例历史记录”)中的历史指标一样,这些指标在本质上并非历史性指标。存在分类为“活动”、“空闲”或“已挂起”的摘要工作流实例指标。通过单击此部分中的向下箭头或“暂留的 WF 实例”名称展开“暂留的 WF 实例”部分时,将显示具有“活动或空闲实例”或“已挂起的实例”工作流服务实例的前五种服务的摘要。您可以使用这些摘要值,及与其降序相关的详细视图,对 AppFabric 持久工作流实例进行实时监控。
暂留的工作流实例指标
监控仪表板上的“暂留的 WF 实例”部分可提供仍未达到“已完成”状态的所有暂留工作流实例(“活动”、“空闲”或“已挂起“)的摘要视图。这些摘要指标位于阴影覆盖的页眉框中,框中还显示标题“暂留的 WF 实例”。以下摘要指标突出显示了暂留工作流的主要状态或情况:
“活动”。“正在运行(活动)”状态,在该状态时工作流锁定在内存中。
“空闲”。“正在运行(空闲)”状态,在该状态时工作流位于内存中并等待消息。
“已挂起”。工作流的执行被例外打断,或者工作流被作为其长期运行生存期的正常部分暂留到暂留存储中。
摘要指标下面是以下按降序顺序将服务分组到特定类别的服务指标:
“活动或空闲实例 - 按服务分组(前 5)”。在指定时间段内,具有活动或空闲实例总数最多的前五种服务。
“已挂起的实例 - 按服务分组(前 5)”。在指定时间段内,具有挂起实例总数最多的前五种服务。
“暂留的 WF 实例”页面
您可以使用“暂留的 WF 实例”页实时查看各种暂留状态的暂留工作流实例。单击任一摘要指标(比如说“已挂起”),或单击列下面的任一服务链接(比如说“已挂起的实例 - 按服务分组(前 5)”),即可进入“暂留的 WF 实例”页。
通过单击链接您可以从“仪表板”页转到“暂留的 WF 实例”页,后者用来筛选暂留的工作流实例。此操作可确保在“暂留的 WF 实例”页上枚举的内容特定于原始连接。例如,在“已挂起的实例 - 按服务分组(前 5)”列下单击服务链接时,您将进入“暂留的 WF 实例”页,并在查询结果窗口中显示经过筛选的“状态”列的值为“已挂起”的工作流服务实例。但是,您可以在“查询摘要”框内更改一个或多个字段的值(如“状态”),以更改初始输出,并对特定工作流进行进一步的疑难解答。例如,如果将您带到“跟踪的事件”页的初始状态为“已挂起”,则您可以将该字段的值更改为“运行 - 活动”,然后单击“运行查询”即可看到不同的结果。
在“暂留的 WF 实例”页内,AppFabric 将为“状态”列列举出一组状态值。您可以使用以下值在以更精细的标准排序和分组实例的同时,轻松地识别实例的状态:
“已完成”状态分为不同的值(“成功”、“已取消”和“已终止”),以提供有关实例到达“已完成”状态情况的更多与状态相关的上下文信息。
“正在运行”状态分为不同的值(“活动”和“空闲”),以提供运行实例的更多与状态相关的信息。
“已挂起”分为不同的值(-Exception 和 –UserSuspension)。
关于**“正在运行(空闲)”和“已挂起”**工作流状态之间的差异有一些需要特别注意的地方。它们之间的细微差异都可能导致混淆,因此,了解它们之间的差异可以帮助您更加容易地了解仪表板中使用的指标。
“空闲”和“已挂起”的意义不同。空闲指的是没有更多计划工作的时候,但如果事件到达,此工作流将继续工作。
除非明确由主机管理器(如 AppFabric)挂起,否则在正常执行期间,工作流一定不会挂起。如果发生未处理的例外,并且用户已在 AppFabric 中将该服务配置为如果有未处理的例外就“放弃并挂起”该实例,则工作流可能挂起。
工作流挂起后,将停止执行操作,且在被主机明确恢复之前,不再进行任何工作。
孤立的工作流实例
AppFabric 为枚举和控制孤立的工作流实例提供了支持。但是,可以应用到孤立实例的唯一控制操作是“删除”操作。当孤立的工作流实例处于“正在运行”或“已挂起”状态时,该工作流实例属于不再部署在用户连接到的计算机上的服务。
工作流实例控制
对于作为“暂留的实例页面”上的查询结果显示的工作流实例,您可以右键单击实例,并调出上下文相关的控制命令菜单。在此菜单中您只能选择适用于该工作流当前状态的控制操作。例如,如果您的工作流处于“正在运行(空闲)”或“正在运行(活动)”状态,则上下文相关操作包括“挂起”、“取消”、“终止”和“删除”。由于“继续”操作不适用于处于“正在运行”状态中的工作流,因此禁用了此操作。
所有导致实例的已完成状态的控制命令都伴随有标准的警告确认对话框。每个对话框不仅要求进行确认,还会解释所选命令对所选实例的影响。如果您改变主意,或错误地开始控制操作,现在便是取消该操作的好机会。
有关详细信息,请参阅“保留的 WF 实例”页页面。
通过监控持久工作流指标进行疑难解答
通过使用“暂留的 WF 实例”部分可以将以前的信息集成到疑难解答方法中,以监控持久工作流的暂留状态。首次查看“暂留的 WF 实例”部分时,您将看到暂留工作流实例状态的高级摘要视图。通过任何现有的已挂起工作流,您可以快速查看暂留工作流级别是否存在问题。如果“暂留的实例 - 按服务分组(前 5)”摘要指标中包含非零值,则该值指示可能已发生问题的位置。所有的摘要指标都连接到“暂留的 WF 实例”页,您可以在该页上查看暂留工作流实例数据(初始“仪表板”页为您在更高级别总结的数据)的明确详细的指标。当开始隔离与暂留的 WF 实例调用相关的问题时,此原始数据将为您提供更多信息。
让我们假设一个案例,来说明您使用“暂留的 WF 实例”部分在指定作用域内监控服务中的问题时的情况。如果您看到已挂起的摘要指标为非零,那么展开小组件您将能够看到问题最多的前五种服务的已挂起实例的细目。这样您便能够集中于潜在问题数量最多的服务。通过转到枚举页并更改查询值,您可以切实了解具有特定问题的服务并指定详细信息。
假设“已挂起”摘要标题中显示一个非零值,以表示一些持久工作流实例已挂起。您可以展开“暂留的 WF 实例”小组件,并查看“已挂起的实例 - 按服务分组(前 5)”列,以查看在选定的时间段内,已挂起工作流实例数量最多的前五种服务。单击此处列出的任一服务,您将进入“暂留的 WF 实例”页。
备注
如果您正在查找未作为前五种服务之一显示的某个特定服务,可以单击“已挂起”摘要列进入“暂留的 WF 实例”的实例枚举页,然后通过作用域查询条件并重新运行查询找到此服务。
“暂留的 WF 实例”页中显示在特定作用域内使用 IIS 层次结构的暂留工作流实例的实时视图。在中间窗格中(仍位于**“暂留的 WF 实例”**页内),您可以单击这些工作流实例之一,即可在页面底部的?详细信息?窗格中显示该工作流的说明信息。在“详细信息”窗格中,您可以在“概述”选项卡上查看有关该暂留工作流实例的信息。此选项卡包含有关该暂留工作流实例的信息,如,“服务虚拟路径”、其“工作流实例 ID”、生存期内“跟踪的事件”数量、“创建时间”及其他信息。您可以使用此信息更好地了解暂留工作流实例的生存期。
您可以使用“暂留的 WF 实例”页为其枚举的持久工作流实例发布实例控制命令。当您确定存在更高级和更抽象的问题,并进行疑难解答以进一步确定是何种问题,或者甚至是否可以解决后,您可以发布控制操作命令,如,挂起或终止实例
备注
暂留的 WF实例不与跟踪的 WF实例直接关联,因为您可以相互独立地启用跟踪(监控)和暂留。
如果您需要更多上下文信息,以帮助解决与暂留工作流实例相关的问题,则您可以在中间窗格中右键单击此实例并选择“查看跟踪的事件”。这样您便可以进入“跟踪的事件”页并显示该工作流实例 ID 信息。如果此工作流也支持跟踪,您也可以在该工作流实例的上下文菜单中选择“查看跟踪的实例”。将出现“跟踪的 WF 实例”页,其中显示与原始工作流实例 ID 相关的暂留工作流信息。
备注
要启用“查看跟踪的实例”和“查看跟踪的事件”选项,包含暂留的 WF服务实例的应用程序必须配置为使用暂留并启用跟踪。
要详细了解如何获取有关暂留工作流实例的更多特定信息以帮助您解决问题,请参阅“跟踪的事件”页页和“跟踪的 WF 实例”页页。
另请参阅
参考
“保留的 WF 实例”页
“跟踪的事件”页
“保留的 WF 实例”页
2011-12-05