SqlTrackingService跟踪服务.doc_第1页
SqlTrackingService跟踪服务.doc_第2页
SqlTrackingService跟踪服务.doc_第3页
SqlTrackingService跟踪服务.doc_第4页
SqlTrackingService跟踪服务.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 SqlTrackingService的类结构跟踪工作流及其结点的状态是工作流平台的核心功能,WF提供Tacking服务用以跟踪工作流实例的执行状态,工作流在执行时过程中会有各种状态的改变,Tacking服务能将这些状态改变信息记录到数据库中,并提供了查询接口以下各类状态变化可被Tacking服务记录:实例的各类状态Aborted、 Changed、 Completed、 Created、 Exception、 Idle、 Loaded、 Persisted、 Resumed、 Started、 Suspended、 Terminated、 UnloadedActivity的各类状态一个工作流是由多个Activity组成的,每一个Activity都会有一个生命周期,在此期间,Activity会经历多种状态:Canceling、 Closed、 Compensating、 Executing、 Faulting、 Initialized用户跟踪行为可以在Activity代码中用TrackData方法向Tacking服务提交自定义状态点Tacking服务所要记录的状态是可以通过自定义Tacking Pofile进行筛选的.2 Tracking 跟踪数据库2.1 数据库安装系统盘WindowsMicrosoft.NETFrameworkv3.0Windows Workflow FoundationSQLEN下Tracking_Schema.sqlTracking_Logic.sql2.2 数据库时间格式说明在Tracking数据库中,时间值是GMT格式的,这样做的目地是使用统一的时间轴,如此可以解决一台在美国的服务器与一台在中国的服务器就可以协同工作时的时差问题GMT比北京时间晚8小时,2.3 表结构2.3.1 关系图2.3.2 WorkflowInstance 工作流实例WorkflowInstanceInternalId工作流实例数据库内部号 ,数据库流水号 WorkflowInstanceId工作流实例GUID号ContextGuid上下文GUID号CallerInstanceIdCallPathCallerContextGuidCallerParentContextGuidWorkflowTypeId工作流类型数据库内部号, Workflow.WorkflowTypeIdInitializedDateTime初始化时间DbInitializedDateTimeEndDateTime结束时间DbEndDateTime2.3.3 WorkflowInstanceEvent 工作流实例结果WorkflowInstanceEventId数据库流水号WorkflowInstanceInternalId工作流实例数据库内部号:WorkflowInstance.WorkflowInstanceInternalIdTrackingWorkflowEventIdEventDateTime结果时间EventOrderEventArgTypeIdEventArgDbEventDateTime2.3.4 Workflow 工作流模板的类型编号与描绘WorkflowTypeId工作流类型数据库内部号,数据库流水号WorkflowDefinitionXML字串,类型结构的描述2.3.5 UserEvent 用户跟踪信息在Activity里使用this.TrackData方法添加用户跟踪结果时,数据存储在该表UserEventId用户跟踪结果ID,数据库流水号WorkflowInstanceInternalId该结果所属的工作流实例的数据ID, WorkflowInstance.WorkflowInstanceInternalIdEventOrderActivityInstanceId该用户跟踪所属的Activity实例IDActivityInstance.ActivityInstanceIdEventDateTimeUserDataKey用户跟踪结果键,用this.TrackData(KEY,DATA)的KEY值UserDataTypeIdUserData_Str用户跟踪结果值,用this.TrackData(KEY,DATA)或this.TrackData(DATA)的DATA值UserData_BlobUserDataNonSerializableDbEventDateTime2.3.6 Type 所有在工作流中引用的Activity的信息,包括系统自带的与用户自定义的TypeIdActivity类型数据库内部号,数据库流水号TypeFullNameActivity名,格式是命名空间,如System.Workflow.Activities.CodeActivity 或wxd.lzmActivity AssemblyFullName格式为版本号,公钥IsInstanceType2.3.7 TrackingWorkflowEvent 可跟踪的结果类型码表TrackingWorkflowEventId结果编号数据库内部号Description描述文字,Created,Completed,Idle,Suspended,Resumed,Persisted,Unloaded,Loaded,Exception,Terminated,Aborted,Changed,Started2.3.8 TrackingProfileInstanceInstanceIdTrackingProfileXmlUpdatedDateTime2.3.9 TrackingProfile自定义TrackingProfile的数据,自定义跟踪筛选器TrackingProfileIdTrackingProfile的编号,数据库流水号Version版本,WorkflowTypeId该筛选器所属的工作流的模板TrackingProfileXml筛选器的XML结构InsertDateTime插入时间2.3.10 TrackingPartitionSetNamePartitionIdNameCreatedDateTimeEndDateTimePartitionInterval2.3.11 TrackingPartitionIntervalInterval2.3.12 TrackingDataItemAnnotationTrackingDataItemIdWorkflowInstanceInternalIdAnnotation2.3.13 TrackingDataItemTrackingDataItemIdWorkflowInstanceInternalIdEventIdEventTypeIdFieldNameFieldTypeIdData_StrData_BlobDataNonSerializable2.3.14 RemovedActivityWorkflowInstanceInternalIdWorkflowInstanceEventIdQualifiedNameParentQualifiedNameRemovedActivityActionOrder2.3.15 EventAnnotationWorkflowInstanceInternalIdEventIdEventTypeIdAnnotation2.3.16 DefaultTrackingProfile默认的TrackPoints的XML字串配置文件Version版本号TrackingProfileXmlXML字串的TrackPoints配置文件InsertDateTime2.3.17 AddedActivityWorkflowInstanceInternalIdWorkflowInstanceEventIdQualifiedNameActivityTypeIdParentQualifiedNameAddedActivityActionOrder2.3.18 ActivityInstance每个实例的每个Activity的信息WorkflowInstanceInternalId所属的工作流实例:WorkflowInstance.WorkflowInstanceInternalIdActivityInstanceIdActivity状态流水号,数据库内部号QualifiedNameActivity,调计时Activity的名子ContextGuidGUIDParentContextGuidGUIDWorkflowInstanceEventId2.3.19 ActivityExecutionStatusEvent每个实例的每个Activity的执行状态结果ActivityExecutionStatusEventIdActivity实例流水号,数据库内部号WorkflowInstanceInternalId所属的工作流实例:WorkflowInstance.WorkflowInstanceInternalIdEventOrderActivityInstanceId执行状态,ActivityExecutionStatus.ExecutionStatusIdExecutionStatusIdEventDateTimeDbEventDateTime2.3.20 ActivityExecutionStatusActivity执行状态码表ExecutionStatusId状态流水号,数据库内部号Description描述文字,Initialized,Executing,Canceling,Closed,Compensating,Faulting2.3.21 Activity每个工作流模板中的Activity与工作流模板,及Activity类型的关系WorkflowTypeId所属工作流模板,Workflow.WorkflowTypeIdQualifiedNameActivity的代码名ActivityTypeId该Activity的类型, Type.TypeIdParentQualifiedName该Activity的父容器名,为空表示为工作流主容器2.4 存储过程2.4.1 GetTrackingProfile 得到自定义筛选器的版本得到Profile版本,(得到自定义筛选器的版本)TypeFullName值为要查询的工作流类的类名: typeof(wxdlzm1).ToString() 或typeof(wxdlzm1).FullNameAssemblyFullName值为要查询工作流类的全称名: typeof(wxdlzm1).Assembly.FullNameVersionCreateDefault2.4.2 UpdateTrackingProfile 插入自定义筛选器到TrackingProfile表插入Profile到TrackingProfile表,(插入自定义筛选器到TrackingProfile表)TypeFullName值为要设置工作流类的类名: typeof(wxdlzm1).ToString()AssemblyFullName值为要设置工作流类的全称名: typeof(wxdlzm1).Assembly.FullNameVersion值为要指定的片本号的字串:格式TrackingProfileXml值为TrackingProfile格式的XML字串3 在引擎中加载跟踪服务3.1 跟踪服务说明1. SqlTrackingService服务将实例的运行状态存入Tracking数据库中。2. SqlTrackingService服务加载到WorkflowRuntime中工作3. 当WorkflowRuntime加载了SqlTrackingService服务后,WorkflowRuntime在加载工作流时,会到数据库中查找该工作流的基本信息。如果没有,就将该工作流的模板信息(工作流类型与工作流的Activity)存入数据库的基本信息表中。4. 如果修改了上面所提的那个工作流(如添加Activity),再次运行时,SqlTrackingService服务不会自动更新数据库中的基本信息,这样在执行查询类操作时可能会产生异常。解决上述问题的办法是:A修改工作流类名,将其作为一个新工作流由SqlTrackingService服务B在数据库中删除原来的信息,由SqlTrackingService服务将其作为一个新工作流再次添加C修改数据中相应的配置信息3.2 添加服务到引擎1. 用连接字串实例化跟踪服务对象2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论