具有WF 4和AppFabric的群集中的单个实例

时间:2010-10-07 10:04:15

标签: design-patterns workflow-foundation-4 single-instance

我正在尝试使用WF4和AppFabric进行单实例工作流程。我只想在集群中运行一个工作流实例。

我尝试了一种biztalk样式:一种创建实例的方法(CallService()),以及未检查cancreateinstance的其他接收活动(CallService())中的相同方法。 (我想我可以通过xpath将它与soap消息中的动作相关联,但是让我们忘记在这一步中的相关性。)

我的问题是WF总是在第二次调用中创建实例并且不相关。

你知道怎么解决吗?我想优先考虑创建实例的相关性。还有其他办法吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。以下是我所写的内容: http://pablocastilla.wordpress.com/2010/10/09/single-instance-of-a-workflow-in-the-cluster-with-wf-4-0-and-appfabric/

我们如何接收具有相同实例的消息?很容易在接收形状中制作一个小技巧:

  1. 我们创建一个关联处理程序。我们称之为singleIntanceHandler
  2. 在接收形状中,将CorrelatesWith属性设置为singleInstanceHandler。
  3. 在CorrelatesOn定义中,您应插入字符串,而不是xpath表达式。例如:“asdf”。
  4. 将相关初始化程序保留为响应句柄。
  5. 据我所知,第一次创建实例初始化与“asdf”的关联时,下次收到消息时,AppFabric会查看是否有可以与字符串“asdf”关联的实例,并且找到在第一次通话中初始化。