Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture Windows工作流SQL持久化体系结构_Architecture_Workflow Foundation - Fatal编程技术网

Architecture Windows工作流SQL持久化体系结构

Architecture Windows工作流SQL持久化体系结构,architecture,workflow-foundation,Architecture,Workflow Foundation,我喜欢WF的想法,并希望将长期运行的工作流持久化到SQL数据库。为此,什么是持久性数据库在SQL级别的适当体系结构?如果持久性表存在于项目的数据库中,或者是持久性数据表项目agnositc,并且只创建一个持久性数据库,则为la SSRS数据库。多个应用程序能否使用一个持久性数据库?SQL持久性数据库不与您的应用程序或项目耦合。每个工作流都是完全原子的,并由GUID唯一标识。因此,应该可以跨多个应用程序共享一个通用的工作流持久性数据库 然而,维护多个持久性数据库肯定是有道理的,每个应用程序一个。如

我喜欢WF的想法,并希望将长期运行的工作流持久化到SQL数据库。为此,什么是持久性数据库在SQL级别的适当体系结构?如果持久性表存在于项目的数据库中,或者是持久性数据表项目agnositc,并且只创建一个持久性数据库,则为la SSRS数据库。多个应用程序能否使用一个持久性数据库?

SQL持久性数据库不与您的应用程序或项目耦合。每个工作流都是完全原子的,并由GUID唯一标识。因此,应该可以跨多个应用程序共享一个通用的工作流持久性数据库

然而,维护多个持久性数据库肯定是有道理的,每个应用程序一个。如果多个应用程序的操作依赖于工作流,您就不会希望通过共享公共持久性数据库来创建潜在的单点故障


从性能和可伸缩性的角度来看,分离持久性数据库也是有意义的。否则,您可能会造成一个瓶颈,即繁重的应用程序会影响其他应用程序的性能。您还可以决定更轻松地将一个或多个应用程序的持久性数据库移动到不同的服务器。

通常,我更喜欢将持久性数据和应用程序数据一起保存在一个数据库中。反对拆分它们的主要原因是,在执行任何事务数据库工作时,您会立即开始创建分布式事务,这要慢得多

我从不将不同的持久性数据库组合到一个数据库中。实际上,每个应用程序的WorkflowRuntime将以不同的方式配置,因此您的工作流不能只选择任何要运行的主机,而是绑定到一个专门配置的主机,该主机了解所有工作流类型。一旦您开始使用DelayActivities并且它们过期,您就无法控制哪个运行时将尝试将工作流加载回内存。出于负载平衡的目的,将一个持久性数据库与同一工作流类型的多个实例一起使用是可能的,但有点困难。事实上,在一个应用程序中为不同配置的工作流运行时使用多个持久性数据库更为常见,反之亦然