私は外部データベースからデータを読み取る1つのサービス(service1)を持っています。それを変換してキューに送信します。例外がスローされたときにnservicebusハンドラから返信を送信する方法は?
2番目のサービス(service2)はメッセージを処理して処理します。処理に失敗した例外がスローされ、NServiceBusが5回再試行して(通常の動作)、応答は送信されません。 。:(
すべてのサービスの取引で働く
私の質問は: 例外がスローされたときにサービス1にハンドラからの応答を送信する(あるいは単にバック異なるメッセージを送信)する方法
私がしたいですか?ただサービス2に失敗した処理サービス1に通知
編集1: 外部データベース内のレコードをアシの茂っより具体的なサービス1マークに関してはそれはフュルトに必要です。他のデータを読み取る。
service2からservice1への応答を返し、例外がスローされたサービスのレコードをunmarkする必要があります。
次に、外部データベースからデータを読み取ると、このレコードが再度取り込まれる場合があります。
「理由Bus.Reply()を行うことはありませんが、それはの一部であるということであるようになり、あなたのtry-catchブロックの後にブロックを使用して文を囲みます同じトランザクション。 - それも私の考えでした。私は同期通信は必要ありません。おそらく例外をキャッチし、適切なエラーコードを返すだけで十分です。私は緩やかに再試行しますが、私の「再試行」は外部データベースからデータを読み取る次の繰り返しによって保証されます。 – dariol