Использование класса Notification для модуля доставки

Класс Notification находится в пространстве имен Microsoft.ReportingServices.Interfaces и представляет сведения о подписках, используемые модулями доставки при доставке отчетов. Класс Notification предоставляет множество свойств, которые можно использовать для отрисовки отчетов для доставки, определения состояния уведомления и задания пользовательских данных.

Screenshot of the Report notification process.

Уведомление является центральным объектом любой доставки.

При возникновении события, связанного с подпиской, в которой применяется пользовательский модуль доставки, создается уведомление, содержащее объект Report. Объект Report инкапсулирует функции, необходимые для подготовки данного отчета к отображению в поддерживаемом формате, и содержит такие конкретные свойства отчета, как URL-адрес отчета на сервере, а также имя отчета. Дополнительные сведения о Report классе см. в разделе "Использование класса Report" для модуля доставки.

Объект Notification передается методу Deliver модуля доставки. Метод Deliver должен содержать конкретный код, обеспечивающий обработку уведомления и доставку отчета.

Пример использования класса Notification см. в разделе Образцы продуктов служб SQL Server Reporting Services.

Функции повторных попыток

Службы Reporting Services позволяют создать очередь повторных попыток для уведомлений, которые не могут быть доставлены немедленно. После вызова сервером отчетов метода Deliver модуля доставки этот модуль доставки может обратиться к серверу отчетов с запросом о повторной доставке в более поздний момент времени. Если это событие происходит, сервер отчетов помещает уведомление во внутреннюю очередь и повторяет доставку после определенного периода времени. Администраторы могут настраивать максимальное число попыток повторной передачи, предпринимаемых сервером отчетов, а также период времени между повторными попытками, в разделе модуля доставки файла RSReportServer.config с помощью элемента XML MaxNumberOfRetries и элемента XML PeriodBetweenRetries. Уведомления удаляются из очереди повтора, если в дальнейшем доставка завершится успешно или будет достигнуто максимальное число попыток повторной передачи. Если после достижения максимального числа попыток повторной передачи доставка оканчивается неудачей, уведомление отменяется.