2011-05-23 12 views
0

MSMQから複数の同じメッセージを受信できるワークフローが必要です。WF4:複数のメッセージを受信するワークフローを設定する方法

例:私は私のワークフローは、複数の更新メッセージを受信することができるようしたいと思い

Receive: CreateWorkflow (CanCreateInstance=True) 
Do Something... 
Parallel (CompletionCondition=ExitParallel) 
    Parallel Branch 1 
     Receive: Update (CanCreateInstance=False, Use correlation) 
     Process... 
    Parallel Branch 2 
     Receive: Finish (CanCreateInstance=False, Use correlation) 
     Set ExitParallel=True 

。しかし、この設定では、受信できるのは1だけです。this MSDN postによると、これはうまくいくはずですが、これはうまく動作しません。

Parallel Branch 1に無限ループwhileループを配置するソリューションはありますか?別の方法がありますか?

答えて

1

複数の更新メッセージを受信するには、その受信をループに入れなければなりません。あなたが今設定した方法では、更新は一度許可され、ParallelはFinishで2番目のブランチが完了するのを待つだけです。

+0

受信をループに入れます。ワークフローが以前の「更新」メッセージを処理している間に別の「更新」メッセージが表示される可能性があります。この場合、ワークフローは受信側にありません。メッセージは失われますか?または、ワークフローが受信に戻るまで、メッセージは待機しますか? – Mas

+0

ワークフローサービスにはAllowBufferedReceiveプロパティがあります。このプロパティを使用すると、メッセージが処理される前にキューに入れられ、受信に戻り、2番目の要求を読み取ることができます。 – Maurice

関連する問題