2

WF4 と AppFabric を使用して単一インスタンスのワークフローを実行しようとしています。クラスターで実行されているワークフローのインスタンスを 1 つだけにしたい。

インスタンスを作成するメソッド (CallService()) と、cancreateinstance がチェックされていない他の受信アクティビティ (CallService()) の同じメソッドです。(xpath を介して SOAP メッセージのアクションに関連付けることができると思いますが、このステップでの関連付けは忘れてください)。

私の問題は、WF が常にインスタンスを作成し、2 番目の呼び出しで相関しないことです。

あなたはそれを解決する方法を知っていますか?インスタンスの作成に対して相関を優先したいと思います。それを行う他の方法はありますか?

前もって感謝します。

4

1 に答える 1

1

私は解決策を見つけました。ここに私が書いたものがあります: http://pablocastilla.wordpress.com/2010/10/09/single-instance-of-a-workflow-in-the-cluster-with-wf-4-0-and-布地/

同じインスタンスでメッセージを受信するにはどうすればよいですか? 受信シェイプでちょっとしたトリックを作るのは簡単です:

  1. 相関ハンドラを作成します。それをsingleIntanceHandlerと呼びましょう
  2. 受信シェイプで、CorrelatesWith プロパティに singleInstanceHandler を設定します。
  3. CorrelatesOn 定義では、xpath 式ではなく文字列を挿入する必要があります。例: 「asdf」。
  4. 相関イニシャライザは、応答のハンドルだけにしておきます。

「asdf」との関連付けを初期化するインスタンスを最初に作成するとき、次にメッセージを受信したときに、AppFabric は文字列「asdf」と関連付けることができるインスタンスがあるかどうかを調べ、初期化するインスタンスを見つけます。最初の呼び出しで。

于 2010-10-09T18:15:43.637 に答える