Обработчик планирования и доставки

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

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

Принцип работы обработчика планирования и доставки

Обработчик планирования и доставки выполняет следующие функции.

  • Обслуживает очередь событий и уведомлений в базе данных сервера отчетов. В масштабном развертывании очередь является общей для всех серверов отчетов конфигурации.

  • Обращается к обработчику отчетов для выполнения отчетов, обработки подписок или удаления кэшированных отчетов. Вся обработка процессов, проводимая в результате запланированного события, выполняется как фоновый процесс.

  • Вызывает модуль доставки, указанный в подписке, чтобы доставить отчет.

Другие аспекты расписаний и операций доставки обрабатываются другими компонентами и службами, которые взаимодействуют с обработчиком планирования и доставки отчетов. Обработчик планирования и доставки запускается службой сервера отчетов и использует агент SQL Server, как таймер, формирующий запланированные события. В следующем пошаговом описании объясняется, как запланированные операции работают в развертывании служб Reporting Services.

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

  2. Сервер отчетов сохраняет информацию расписания в базе данных сервера отчетов.

  3. Сервер отчетов создает соответствующее задание агента SQL Server, включающее предоставленные сведения о расписании. Задания создаются с помощью хранимых процедур, используя существующее открытое соединение с базой данных сервера отчетов.

  4. Агент SQL Server запускает задание в указанные в расписании день и время. Задание создает событие, которое добавляется в очередь, поддерживаемую службой Reporting Services.

  5. Событие вызывает обработку отчета или подписки. События обрабатываются, когда они обнаружены в очереди, соответственно обрабатывается и доставляется отчет.

    Перед обработкой событий обработчик планирования и доставки выполняет проверку подлинности, чтобы удостовериться, что владелец подписки имеет разрешение для просмотра отчета. Дополнительные сведения относительно XMLA см. в разделе Обработка подписок.

Службы Reporting Services поддерживают очередь событий для всех запланированных операций. Через регулярные интервалы времени производится опрос очереди для обнаружения новых событий. По умолчанию очередь просматривается с интервалом в 10 секунд. Можно изменить этот интервал, изменив настройки конфигурации PollingInterval, IsNotificationService и IsEventService в файле RSReportServer.config. Дополнительные сведения см. в разделе Файл конфигурации RSReportServer.

Серверные зависимости

Обработчик планирования и доставки требует, чтобы была запущена служба сервера отчетов и агент SQL Server. Функции обработчика расписания и доставки должны быть активированы через свойство ScheduleEventsAndReportDeliveryEnabled аспекта Настройка контактной зоны для служб Reporting Services в управлении на основе политик. Для формирования запланированных действий должны быть запущены как агент SQL Server, так и служба сервера отчетов.

ПримечаниеПримечание

Для временной или полной остановки формирования запланированных действий можно использовать аспект Настройка контактной зоны для служб Reporting Services. Можно создать и развернуть пользовательские модули доставки, но сам обработчик планирования и доставки не является расширяемым. Нельзя изменить его способ управления событиями и уведомлениями. Дополнительные сведения об отключении компонентов см. в разделе Как включать и отключать компоненты служб Reporting Services.

Последствия остановки работы агента SQL Server

Агент SQL Server используется по умолчанию для обработки запланированного отчета. При остановке службы никакие новые запросы обработки в очередь не добавятся, если только они не будут добавляться программно вызовом метода FireEvent. При перезагрузке службы возобновляются задания, создающие требования на обработку отчета. Сервер отчетов не пытается воссоздать задания обработки отчета, которые могли возникнуть, когда агент SQL Server находился в режиме «вне сети». Если агент SQL Server не будет работать неделю, то все запланированные на эту неделю действия будут утеряны.

ПримечаниеПримечание

Функции, которые выполняет агент SQL Server для служб Reporting Services, могут быть заменены на пользовательский код, который вызывает метод FireEvent для добавления событий в очередь.

Последствия остановки службы сервера отчетов

При остановке службы сервера отчетов агент SQL Server продолжает добавлять запросы на обработку отчета в очередь. Сведения о состоянии от агента SQL Server указывают на то, что задание успешно завершилось. Однако из-за того, что служба сервера отчетов была остановлена, фактически обработка отчета не выполнялась. Запросы будут накапливаться в очереди до тех пор, пока служба сервера отчетов не будет перезапущена. Как только служба сервера отчетов будет перезапущена, все запросы на обработку отчета, находящиеся в очереди, начнут обрабатываться по очереди.