.net 4.0 事务WF4.0中的书签

.net 4.0 事务WF4.0中的书签,.net-4.0,workflow,workflow-foundation-4,.net 4.0,Workflow,Workflow Foundation 4,我正在创建长时间运行的工作流,将为持久性创建一个书签。 当我执行工作流时,它就像一个魔咒一样工作。 问题就在这里,当我将整个工作流包含在事务范围中时,一旦它点击.waitone()我看不到执行,它就不会完成它的执行 当然,我们需要在工作流中显示事务。我检查了数据库上的DTC设置。我认为问题在于WF 4.0中的书签和最上面的事务。执行工作流需要多少时间。TransactionScope的默认超时时间为1分钟,如果执行时间更长,则会中止。一个持续1分钟的ACID事务通常很长,它不应该持续超过1秒或2

我正在创建长时间运行的工作流,将为持久性创建一个书签。 当我执行工作流时,它就像一个魔咒一样工作。 问题就在这里,当我将整个工作流包含在事务范围中时,一旦它点击
.waitone()
我看不到执行,它就不会完成它的执行


当然,我们需要在工作流中显示事务。我检查了数据库上的DTC设置。我认为问题在于WF 4.0中的书签和最上面的事务。

执行工作流需要多少时间。TransactionScope的默认超时时间为1分钟,如果执行时间更长,则会中止。一个持续1分钟的ACID事务通常很长,它不应该持续超过1秒或2秒,因为大多数事务都会锁定数据库等资源


另一件事是你不能在事务中间坚持工作流。一个事务是一个原子单元,在中间保持它意味着你能够在中间重新启动,这将大大破坏事务的原子属性。

你执行工作流要花费多少时间。TransactionScope的默认超时时间为1分钟,如果执行时间更长,则会中止。一个持续1分钟的ACID事务通常很长,它不应该持续超过1秒或2秒,因为大多数事务都会锁定数据库等资源


另一件事是你不能在事务中间坚持工作流。一个事务是一个原子单位,在中间存留意味着你能在中间重新启动,这将大大破坏事务的原子性质。< /P> < p>为什么在事务中需要书签?< /p> 为什么在事务中需要书签?< /P> < P> <强>微软< /强>确认WF 4。不支持长时间运行的工作流内部事务范围。(我没有这方面的文档,但我们与Microsoft团队进行了一次通话,他们确认不支持这一点)。如果这样做会发生什么:工作流暂停或挂起


奇怪的是,整个WF4.0在transactionscopes(在工作流项目外部调用)方面都存在问题。尽管我说PersistableIdle.unload(应该持久化到数据库并从内存中卸载)看起来像一个简单的作业。我不明白为什么交易镜会有问题

Microsoft确认WF 4.0不支持长时间运行的工作流内部事务范围。(我没有这方面的文档,但我们与Microsoft团队进行了一次通话,他们确认不支持这一点)。如果这样做会发生什么:工作流暂停或挂起


奇怪的是,整个WF4.0在transactionscopes(在工作流项目外部调用)方面都存在问题。尽管我说PersistableIdle.unload(应该持久化到数据库并从内存中卸载)看起来像一个简单的作业。我不明白为什么交易镜会有问题

我在工作流中有一个书签,它会将它持久化到DB。使数据库中的一个条目成为正在执行的,当我明确地调用工作流的OnTrand事件时,工作流只会完成,而不是在事务的一部分中。不太确定我是否理解,但它肯定听起来像是在事务中间暂停了工作流,导致了超时和失败。交易只有当我在事务中创建书签时,它才会挂起。我在工作流中有一个书签,它将持久保存到DB。使数据库中的一个条目成为正在执行的,当我明确地调用工作流的OnTrand事件时,工作流只会完成,而不是在事务的一部分中。不太确定我是否理解,但它肯定听起来像是在事务中间暂停了工作流,导致了超时和失败。交易仅当我在事务内创建书签时,它才会挂起。事务用于某些与工作流无关的数据库操作,但工作流应仅在工作流内调用。我在工作流中输入和输出的数据对于同一事务中的其他数据库操作非常重要我不确定我是否理解您所说的,但无论何时启动TransactionScope或TransactiveReceiveScope,工作流中将有一个隐式持久化操作,该操作将在作用域结束时和事务提交之前执行。您能否发布您的工作流的外观?也许我们可以更好地理解我们不使用TransactionScope活动的场景,它来自system.transaction dll。我是从C#Code.Aha中使用它的,所以您是从使用TransactionScope对象的其他地方调用WF的。正如Maurice所说,如果您有一个长时间运行的工作流,那么您不希望有这样一个长时间运行的事务(我不会在事务上有任何异步)。是否使用接收和发送活动调用WF?事务用于某些与工作流无关的数据库操作,但工作流应仅在工作流内部调用。我在工作流中输入和输出的数据对于同一事务中的其他数据库操作非常重要我不确定我是否理解您所说的,但无论何时启动TransactionScope或TransactiveReceiveScope,工作流中将有一个隐式持久化操作,该操作将在作用域结束时和事务提交之前执行。您能否发布您的工作流的外观?也许我们可以更好地理解我们不使用TransactionScope活动的场景,它来自system.transaction dll。我是从C#Code.Aha中使用它的,所以您是从使用TransactionScope对象的其他地方调用WF的。好,