计划和传递处理器
SQL Server Reporting Services 包括一个计划和传递处理器组件,以支持计划的操作,并驱动用于向电子邮件收件箱或共享文件夹等目标位置推送报表的传递扩展插件。计划和传递处理器提供以下功能:
- 维护一个事件和通知队列。对于扩展部署,将在部署中的所有报表服务器之间共享该队列。
- 调用报表处理器以执行报表、处理订阅或清除缓存的报表。计划事件引起的所有报表处理都是通过报表服务器 Windows 服务执行的,而不是通过报表服务器 Web 服务执行的。
- 调用在订阅中指定的传递扩展插件,以便可以传递报表。
计划和传递操作的其他方面由与计划和传递处理器配合工作的其他组件和服务进行处理。具体而言,计划和传递处理器通过报表服务器 Windows 服务运行,并使用 SQL Server 代理作为计时器来生成预定的事件。下表描述了 Reporting Services 部署中的计划操作是如何工作的:
- 计划操作在用户创建计划时定义。计划中定义了运行报表、刷新快照或使缓存过期的日期和时间。
- 报表服务器将计划信息保存在报表服务器数据库中。
- 报表服务器在 SQL Server 代理中创建相应的作业,并通过提供的计划信息运行该作业。这些作业是使用打开的现有报表服务器数据库连接并通过存储过程创建的。
- SQL Server 代理按照计划中指定的日期和时间运行作业。作业创建的事件将添加到由 Reporting Services 维护的队列中。
- 该事件会导致报表或订阅进程发生。当在队列中检测到事件时对事件进行处理,并相应地处理或传递报表。
Reporting Services 维护一个针对所有计划操作的事件队列。它定期轮询队列,检查是否有新事件。默认情况下,每隔 10 秒扫描一次队列。通过修改 RSReportServer.config 文件中的 PollingInterval、IsNotificationService 和 IsEventService 配置设置可以更改此间隔。有关详细信息,请参阅 RSReportServer 配置文件。
服务器依赖关系
计划和传递处理器需要启动报表服务器 Windows 服务和 SQL Server 代理。计划和传递处理功能必须通过 SQL Server 外围应用配置器工具启用。SQL Server 代理和报表服务器 Windows 服务必须都在运行,计划的操作才能发生。
注意: |
---|
您可以使用外围应用配置器工具临时或永久地停止计划操作。计划和传递处理器不可扩展,没有任何配置设置。该工具管理事件和通知的方式是不可更改的。有关外围应用配置器工具的详细信息,请参阅 SQL Server 外围应用配置器。 |
停止 SQL Server 代理的影响
默认情况下,计划的报表处理将使用 SQL Server 代理。如果停止该服务,除非通过 FireEvent 方法以编程的方式添加请求,否则将不会向队列中添加新的处理请求。重新启动该服务时,将继续进行创建报表处理请求的作业。对于过去在 SQL Server 代理脱机期间可能已经发生的报表处理作业,报表服务器不会尝试重新创建这些作业。如果 SQL Server 代理停止一个星期的时间,则该星期的所有计划操作都将丢失。
注意: |
---|
对于 SQL Server 代理提供给 Reporting Services 的功能,可以使用通过 FireEvent 方法向队列中添加计划事件的自定义代码来替代。 |
停止报表服务器 Windows 服务的影响
如果停止报表服务器 Windows 服务,SQL Server 代理会继续向队列中添加报表处理请求。来自 SQL Server 代理的状态信息将指示作业成功。但是,由于报表服务器 Windows 服务已停止,因此实际上未发生报表处理。在您重新启动报表服务器 Windows 服务之前,请求将在队列中一直堆积下去。一旦重新启动报表服务器 Windows 服务,便会立即按顺序处理队列中的所有报表处理请求。
请参阅
概念
RSReportServer 配置文件
启动和停止报表服务器 Windows 服务
Reporting Services 组件概述