探索工作流(七)--流程实例持久化

本文深入探讨了工作流实例的持久化,通过新建countersignatureDB数据库,并执行SqlWorkflowInstanceStoreSchema和SqlWorkflowInstanceStoreLogic脚本来实现。这些步骤确保工作流状态在系统重启后仍能恢复,从而保证流程的连续性。
摘要由CSDN通过智能技术生成
一 概述
       在没有持久化之前,流程实例是存在于内存中的,所以我们最多只能有一个宿主来使用这个流程实例,一旦流程包含多个节点,需要多次使用这个流程实例,那么流程示例的持久化就是不可或缺的一个过程。Workflow4将工作流持久化封装成一个插件来提供持久化服务,并且通过调用SqlWorkflowPersistenceService类来实现SQL Server数据中流程实例的持久化。
二 工作原理
       工作流提供了持久化服务,我们只需要通过开启持久化服务即可实现流程实例的持久化。在初始化工作流宿主时同时初始化流程实例,然后我们就可以在工作流生命周期中的特定时间来进行流程实例的持久化。这里的指定时间有以下几种情况:
       1 工作流空闲时;
       2 工作流完成或终止时;
       3 活动TransactionScopeActivity/CompensatableTransactionScopeActivity/CompensatableSequenceActiviy 完成时;
       4 自定义活动完成时;
       5 调用WorkflowInstance的一种方法,且这种方法又会导致持久化操作时。
对于开发者来说,不需要额外去控制持久化服务,流程实例的持久化是由工作流引擎自动控制的。
三 数据模型
       1 添加System.Activities.DurableInstancing 和 System.Runtime.DurableInstancing的引用。

       2 新建数据库countersignatureDB;运行C:\Windows\Microsoft.NET\Framework\v4.0.30319\SQL\en下的SqlWorkflowInstanceStoreSchema和SqlWorkflowInstanceStoreLogic脚本,截图如下:


       数据库表截图如下:


       3 表说明
        

[System.Activities.DurableInstancing].[InstancesTable]

实例表

[System.Activities.DurableInstancing].[RunnableInstancesTable]

运行实例表

[System.Activities.DurableInstancing].[KeysTable]

关键字表

[System.Activities.DurableInstancing].[LockOwnersTable]

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值