WCF netMSMQbinding を使用すると、順序どおりの配信を保証できますか?
挿入コマンドに続いて多数の更新コマンドを同じキューに入れていますが、時折、更新の 1 つが挿入よりも優先されます。
広範なログを追加すると、それらが正しい順序でキューに追加され、異なる順序で処理されていることが明らかです。
この動作が予想されることを示すいくつかの記事を Google で検索しましたが、どうにかして順序付けられるように構成する必要があるようです。
私たちのキューはトランザクションであるため、シーケンス番号を追加して宛先で再シーケンスすることは機能しないと思います。トランザクション性が失われるためです。
属性を追加する[DeliveryRequirements(RequireOrderedDelivery=true, QueuedDeliveryRequirements=QueuedDeliveryRequirementsMode.Require)]
と、次のエラーが発生します。
コントラクト「IService」の DeliveryRequirementsAttribute は、NotAllowed の QueuedDeliveryRequirements 値を指定します。ただし、このコントラクト用に構成されたバインディングは、キュー配信をサポートすることを指定しています。キューに入れられたバインディングは、このコントラクトでは使用できません。
すべてが正しくセットアップされているように見えるため、このエラーが発生する理由がわかりません。ただし、この設定がMSMQで許可されていることを確認することはできませんでした.WS-RM設定のようであり、知る限りnetMSMQBindingはWS-RMをサポートしていません.