Azureサービスバスで、メッセージ送信に失敗してサブスクリプションが定義されていません。私はEnableFilteringMessagesBeforePublishing
をtrue
に設定してこれを達成します。これは例外NoMatchingSubscriptionException
をスローします。Azureサービスバスでトピックに送信中にBrokeredMessagesをデタッチします。
今、この例外を処理している間、私はそれをDeadLetterしたいと思います。私はBrokeredMessage.DeadLetter()
を呼び出した場合、そのメッセージはそのを受信した際にのみ、送信されていないがDeadLetter'edすることができることを意味するメッセージ「ReceiveContext is null
」
try
{
await topicClient.SendAsync(brokeredMessage);
}
catch (NoMatchingSubscriptionException ex)
{
// **throws exception** if message is attempted to move to DeadLetter queue
await brokeredMessage.DeadLetterAsync();
}
でInvalidOperation
をスローします。
上記の仮定は正しいですか?
いずれの場合でも、失敗したメッセージの送信を処理するための最良の戦略は何ですか。後で調査するために、送信中に失敗したメッセージがDeadLetterキューに残ることがありますか?
おかげ