2014-11-11 3 views
2

Я читал на Event-Driven Message Programming Model, представленном в апреле 2013 года, OnMessageOptions.ExceptionReceived Event, встроенный RetryPolicy (май 2013 г., RetryPolicy.Default), The Transient Fault Handling Application Block (2011), который устарел и больше (см. Снизу).Azure Service Bus: переходные ошибки (исключения), полученные через насос сообщений со встроенной политикой повторных попыток. Зачем?

Я отслеживаю исключения, полученные через насос сообщений для временных ошибок, и получаю ежедневно MessagingCommunicationExceptions. Это article (Обновлено: 16 сентября 2014), рекомендую следующее:

Это исключение сигнализирует об ошибке связи, которая может проявляться , когда соединение от клиента обмена сообщений в инфраструктуры Service Bus не может быть успешно установлено. В большинстве случаев обеспечивает сетевое соединение, эта ошибка может быть обработана как переходной. Клиент может попытаться повторить операцию, которая имеет , в результате этого исключения. Также рекомендуется, чтобы вы проверяли, работает ли служба разрешения имен доменов (DNS) , так как эта ошибка может указывать на то, что имя целевого узла не может быть .

Насколько я понимаю, нет дополнительного кода для написания для обработки ошибок переходных процессов на служебной шине после версии 2.1 (2013). Если мое предположение не так, почему я получаю ошибки переходных процессов каждый день? Следует ли игнорировать исключения, полученные через насос сообщений? Если игнорировать, я могу только предположить, что непредвиденные исключения также будут проигнорированы. И я не хочу, чтобы это происходило, конечно.

Версия Microsoft.ServiceBus является 2.4.0.0

Также интерес: upgrading Windows Azure Service Bus from 1.x to 2.0 - Retry Policy, Introducing the Event-Driven Message Programming Model for the Windows Azure Service Bus, What's New in the Azure SDK 2.0 Release (April 2013), What's New in the Service Bus 2.1 Release (May 2013), Transient Fault Handling.

ответ

4

Официально ответил here. Короче говоря, исключений барботируют для целей мониторинга после попыток повтора. При продолжительном:

Преходящих исключений вы получаете от ExceptionHandler обратного вызова означает эти исключения bubled после повторных попыток. Вы должны просто log it для целей мониторинга. Примите меры, если вам нужно. Для eample, если ваш клиент теряет сетевое подключение, вы должны ожидать большое количество исключений связи, кровотечение через обработчик. В таких случаях вам может потребоваться принять правильные меры для исправления ситуации. Итак, ответ на вопрос «не следует ли их игнорировать?» действительно зависит от условий. - Serkant Karaca, Microsoft