Установка настроек выполнения протокола доставки

При настройке протокола доставки можно определить несколько настроек выполнения, связанных с повторной доставкой, сбоями и временем ожидания обработки. В этом разделе описано, как установить настройки выполнения протокола доставки.

Повторная доставка уведомлений

При сбое доставки уведомлений распространитель может снова выполнить доставку. Настройка расписания повторной доставки выполняется для каждого протокола доставки с помощью класса уведомлений.

Логика повторной доставки применяется на уровне рабочих элементов распространителя. Если невозможно доставить уведомления в пределах рабочего элемента, то предполагается, что произошел сбой в рабочем элементе распространителя. Распространитель может выполнить повторную доставку рабочего элемента распространителя позднее в соответствии с заданным расписанием.

Если распространитель выполняет повторную попытку с рабочим элементом, то отправляются только те уведомления, которые не были доставлены при предыдущей доставке. Если произошла ошибка, предотвращающая обновление состояния доставки, то распространитель может выполнить попытку повторной отправки дубликата уведомления.

При настройке расписания повторной отправки можно задать одно или несколько значений задержки. Если произошел сбой доставки уведомления, то распространитель снова возвращается к рабочему элементу через некоторый заданный интервал времени. При повторном сбое доставки уведомлений распространитель выполняет очередную попытку через заданный интервал ожидания. Этот процесс продолжается до тех пор, пока не будут использованы все значения задержки или пока не истечет срок недоставленных уведомлений.

ms171406.note(ru-ru,SQL.90).gifПримечание.
Срок действия задается для класса уведомлений, а не для протокола доставки. Дополнительные сведения см. в разделе Задание срока действия уведомлений.

Пример

Далее в таблице показано, как распространитель выполняет повторную доставку уведомлений с использованием трех значений задержки.

Исходная попытка доставки

1:00

Первая задержка повторной доставки = 15 минут

1:15

Вторая задержка доставки = 30 минут

1:45

Третья задержка доставки = 60 минут

2:45

Значения задержки повторной доставки не влияют на запуск расписания распространителя. Эти значения соответствуют минимальной задержке. Фактическая задержка между попытками доставки может быть дольше.

Если сервер отключается на длительное время, то может пройти более одного интервала задержки до очередной попытки распространителя выполнить доставку. В этом случае распространитель немедленно выполняет одну попытку повторной доставки в пределах рабочих элементов, для которых не истек срок в момент восстановления работы сервера. Затем распространитель продолжает выполнение расписания задержки и ожидает в течение интервала времени, заданного для следующей задержки перед повторной попыткой.

Задание расписания повторных попыток

Ведение журнала сбоев доставки

Распространитель записывает в журнал приложений Windows сведения о сбоях доставки уведомлений. Выполняется настройка того, как и когда распространитель записывает в журнал события о сбоях для каждого протокола доставки.

ms171406.note(ru-ru,SQL.90).gifВажно!
Службы Notification Services получают ограниченное количество ошибок отзыва от внешних систем доставки. Большинство сбоев приводит к записи в журнал событий универсальной ошибки «сбой доставки». Постоянные сбои доставки, возможно, указывают на проблемы с конфигурацией. Чтобы проверить конфигурацию доставки, просмотрите настройки канала доставки в конфигурации экземпляра и значения в полях протокола в определении приложения.

Первое свойство, которое можно настроить, — количество сбоев, происходящих до того, как распространитель записывает событие в журнал приложений. Второе свойство — минимальный интервал между записью в журнал событий независимо от количества сбоев. Эти две настройки позволяют контролировать количество событий, записываемых распространителем в журнал приложений, и предохранить журнал приложений от переполнения при возникновении нескольких сбоев в течение короткого интервала времени.

Например, если задать количество сбоев 5, а интервал 10 минут, то распространитель выполняет запись в журнал при возникновении пяти сбоев. Через 10 минут отсчет сбоев начинается заново. Еще через пять сбоев распространитель записывает другое событие в журнал приложений.

При разработке приложения можно использовать значения по умолчанию — один сбой и ноль минут. При разработке приложения следует рассмотреть использование больших значений для установки баланса между необходимостью записи сведений о сбоях и снижением избыточного количества записей.

ms171406.note(ru-ru,SQL.90).gifПримечание.
Хранимые процедуры NSDiagnosticDeliveryChannel (Transact-SQL) и NSDiagnosticFailedNotifications (Transact-SQL) можно использовать для диагностики сбоев доставки.

Настройка количества сбоев доставки до регистрации события

  • При определении приложения посредством XML определите количество сбоев доставки до регистрации события в FailuresBeforeLoggingEvent Element (ADF).
  • Если приложение определяется программным путем, то определите количество сбоев перед записью в журнал события с помощью свойства FailuresBeforeEventLog (NMO).

Настройка интервала между записями в журнал

  • При определении приложения посредством XML определите интервал между записями в FailureEventLogInterval Element (ADF).
  • Если приложение определяется программным путем, то задайте интервал между записями в журнал с помощью свойства FailureEventLogInterval (NMO).

Остановка доставки после последовательных сбоев

Когда сбой доставки происходит вследствие длительного отключения сети, а не в результате помех в сети, распространитель может остановить попытки доставки в пределах рабочего элемента, чтобы избежать перегрузки в сети.

Можно задать, сколько должно произойти в пределах рабочего элемента последовательных сбоев доставки, прежде чем распространитель отменит дополнительные попытки доставки уведомлений в пределах этого рабочего элемента. При достижении предела распространитель записывает сообщение в журнал приложений и отмечает рабочий элемент как элемент, в пределах которого возникают сбои. В этом случае в пределах рабочего элемента возможны уведомления, для которых никогда не выполняется попытка повторной доставки. Если имеется расписание повторной доставки, то распространитель назначает рабочий элемент для следующего интервала повторных попыток для уведомлений с неудачной доставкой и уведомлений, для которых повторная доставка никогда не выполнялась.

Настройка количества последовательных сбоев доставки до ее остановки

  • При определении приложения посредством XML задайте количество последовательных неудачных попыток доставки в FailuresBeforeAbort Element (ADF).
  • Если приложение определяется программным путем, то задайте количество неудачных попыток доставки с помощью свойства FailuresBeforeAbort (NMO).

Ограничение многоадресных получателей

Для каждого протокола доставки также можно ограничить количество подписчиков, участвующих в многоадресной доставке. Дополнительные сведения о многоадресной доставке см. в разделе Задание сводной доставки или многоадресной доставки.

При ограничении количества получателей многоадресной доставки распространитель прекращает добавление подписчиков в список получателей многоадресной подписки при достижении предела. Затем распространитель создает новый список и добавляет в него новых подписчиков до тех пор, пока не будет достигнут предел. Этот процесс продолжается до тех пор, пока все многоадресные уведомления в пределах рабочего элемента не будут добавлены в списки получателей многоадресной доставки.

ms171406.note(ru-ru,SQL.90).gifВажно!
Настройки многоадресной доставки недоступны в выпуске SQL Server 2005 Standard Edition.

Настройка предела получателей многоадресной доставки

  • При определении приложения посредством XML определите предел получателей для многоадресной доставки в MulticastRecipientLimit Element (ADF).
  • Если приложение определяется программным путем, то задайте предел получателей для многоадресной доставки с помощью свойства MulticastRecipientLimit (NMO).

Настройка времени ожидания рабочего элемента

Когда распространитель указывает рабочий элемент, он вызывает модуль форматирования содержимого для форматирования уведомлений, формирования пакетов протокола доставки и доставки уведомлений. Если рабочий элемент очень большой или если распространение заблокировано по какой-либо причине, то рабочий элемент может использовать один поток распространителя и отложить обработку других уведомлений.

При задании времени ожидания рабочего элемента для протокола доставки распространитель освобождает рабочий элемент через заданный интервал времени. Распространитель отмечает рабочий элемент как сбойный и, если протокол доставки имеет расписание повторной доставки, снова выбирает этот рабочий элемент.

Настройка времени ожидания рабочего элемента

  • При определении приложения посредством XML задайте в WorkItemTimeout Element (ADF) значение времени ожидания рабочего элемента.
  • Если приложение определяется программным путем, то задайте значение времени ожидания рабочего элемента с помощью свойства WorkItemTimeout (NMO).

См. также

Основные понятия

Настройка ведения журнала на распространителе

Другие ресурсы

Хранимые процедуры служб Notification Services (Transact-SQL)
Настройка протоколов доставки
Определение классов уведомлений
Определение приложений служб Notification Services

Справка и поддержка

Получение помощи по SQL Server 2005