2011-06-14 20 views
3

受信要求を処理するWCFサービスがあり、受信メッセージごとに対応する出力メッセージが生成され、別のWCFサービスに送信されます。メッセージが来る順序は重要であり、妨げられない。したがって、サービスは、サービスによって受信されたのと同じ順序で、対応する出力メッセージを生成する必要があります。また、マルチコアCPUの恩恵を受けるために、同時に要求を処理することも重要です。ConcurrencyMode.MultipleモードのWCFサービスにおけるメッセージの順序の保護

この場合、入力と出力の間のメッセージの順序を保持するための最良の方法はありますか?

答えて

3

これは完全にあなたの実装に依存します。 WCFは、(信頼性の高いセッションまたはMSMQを使用して)順序付き配信のみを実行できるため、送信された順序でメッセージが受信されることを確認できますが、操作が確実に同じ順序でメッセージを送信する機能はありませんメッセージは早く処理され、その後に受信される)。 ConcurrencyModeMultipleに設定してメッセージを処理する場合は、非常に複雑になります。同時実行性を低下させる操作を手動で同期させ、最悪の場合はConcurrencyMode.Singleのフォールバックに同期させる必要があります。操作ではそれを実行するだけでは不十分であるため、同期を達成するのは難しいでしょう - 出力メッセージのWCFチャネルスタック処理も同期させる必要があります。

関連する問題