2010-10-07 42 views
2

我正在嘗試使用WF4和AppFabric來執行單個實例工作流程。我只需要在集羣中運行一個工作流實例。使用WF 4和AppFabric的羣集中的單個實例

我嘗試過biztalk風格:創建實例的方法(CallService()),以及沒有檢查cancreateinstance的其他接收活動(CallService())中的相同方法。 (我想我可以通過xpath將它關聯到soap消息中的動作,但是讓我們忘記在這一步中關聯)。

我的問題是,WF總是創建實例,並沒有在第二次調用中關聯。

你知道如何解決它嗎?我想優先考慮創建實例的相關性。任何其他方式來做到這一點?

在此先感謝。

回答

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. 將相關初始值設定項與響應的句柄保持一致。

據我瞭解創建實例initializating與「ASDF」,它收到一個消息,下一次的相關性在第一時間,AppFabric的長相,如果有一個實例,他可以用字符串「ASDF」相關,並在第一次調用中找到一個初始化。

+0

感謝您節省我的一天! – ieaglle 2013-01-06 18:11:21