0

SSB キューを使用して他のシステムと通信する C# アプリケーションを作成しています。SSB キューからメッセージを受信するとき、それを処理できるかどうか常に確信できるとは限りません。したがって、キューをのぞき見したいと思います (またはメッセージがあることが通知されるだけで、必ずしも内容ではありません) と同時に、WAITFOR を含む SSB 構文を使用します。

これを行う理由は、受信側で何らかの回復不能な障害が発生した場合でも、メッセージが失われないことを 100% 確実にしたいからです。もう 1 つの解決策は、トランザクションでラップすることかもしれませんが、これには単なるピーク呼び出しよりもはるかに多くのコード変更が必要になります。データが失われないようにするための代替ソリューションを誰かが持っている場合、私は完全に耳を傾けます.

4

1 に答える 1

0

最初にメッセージを受信して​​から、それを処理できるかどうかを判断する必要があります。それができない場合は、「ログ メッセージを書き込んで救済」しますが、受信トランザクションをコミットします。トランザクションをロールバックする (または意図したとおりにキューをピークする) と、処理できないメッセージがキューにあり、それを無期限にピーク (または受信/ロールバック) し続けるという状況に陥ります。

于 2010-06-02T15:53:19.640 に答える