2つの.NETアプリケーション間でメッセージングにService Brokerを使用することを検討しています。私はイニシエータ側でこれがどのように見えるかについてかなり良い考えがあります。.NETアプリケーション間のメッセージングにSQL Server Service Brokerを使用する
ただし、コンシューマアプリケーションでは、キューからメッセージを読み込んで処理を行い、処理がうまくいったことを確認する必要があります。処理が失敗する可能性があります。この場合、メッセージを再試行する必要があります。私はまた、歴史のために処理されたすべてのメッセージを保持する必要があります。
私が知る限り、RECEIVEを実行すると、メッセージはキューから削除されます。だから、失敗した場合の消費者向けアプリケーションはどうすればよいでしょうか?メッセージを再びキューにプッシュしますか?メッセージを「処理中」としてマークし、タスクが正常に完了したらメッセージを削除できますか?
Service Brokerを使用してこれをモデル化するにはどうすればよいですか?
Service Brokerはすばらしいことです.Sql Serverの内部または間にメッセージングが必要な場合に便利です。 2つの.NETアプリケーション間の通信では、SQL Server Service BrokerではなくWCFを見ていきます... –
私は永続的な非同期キューが必要です。一方または両方のアプリケーションが終了すると、エンキューされたアイテムは失われません。 WCFには私にそれを与えるものはありますか? MSMQまたはその他の分散メッセージキューは(残念ながら)現在のところこのプロジェクトのオプションではありません。 – driis
MSMQがオプションでないのはなぜですか?それはそこにあり、それはすべてのWindows Serverで無料で、WCFとうまく統合されています...それはあなたのニーズに完璧にフィットするでしょう、私は信じています... –