Scheduling and Delivery Processor
The Scheduling and Delivery Processor component provides functionality for scheduling reports and delivering them to users. Reports can be scheduled to run once or in a recurring pattern, and they can be delivered to users based on this schedule or on the personalized schedules of the users. Scheduling and Delivery Processor performs two distinct tasks: running scheduled and delivering reports to a specified device or location.
When a scheduled report runs, the report server produces a report snapshot. This report is stored in the report server database for later retrieval. Multiple snapshots can be stored as report history.
Running reports on a schedule can help an administrator balance the load on the report server and on the databases that the reports use as data sources. When users access a snapshot, they view data that has already been retrieved from the data source and processed by Report Processor. This can help reduce the load on the source database and improve performance.
Scheduling and Delivery Processor processes its schedules using the SQL Server Agent. For more information about scheduling reports, see Using Schedules.
Users can subscribe to reports. Scheduling and Delivery Processor uses delivery extensions to deliver reports based on these subscriptions. Reporting Services includes an e-mail delivery extension. After a report runs, it is delivered to a location specified by the subscription. Using the delivery extension, Reporting Services can embed a report in an e-mail message, send a simple e-mail notification to a pager or other device, or send the report as an attachment.
Developers can create additional delivery extensions to further extend the functionality of Scheduling and Delivery Processor. For more information about delivery extensions, see Delivery Extensions.
Schedule Engine Processing and Configuration
Schedule processing is based on the local time of the report server that owns the schedule. The time format follows the Microsoft Windows® operating system standard.
Schedule information is stored in the report server database. The report server queues the schedules that it stores and sends them to the scheduling engine for processing at the appropriate times.
For the schedule engine, Reporting Services uses the SQL Server Agent service of the SQL Server instance that you specify during Setup. The credentials under which SQL Server Agent runs are provided during installation. You should not reconfigure schedule settings manually through configuration files. If you need to change the SQL Server instance that the report server uses, you rerun Setup to make the change.
Schedules are not processed if SQL Server Agent is not running. For example, suppose a report snapshot is scheduled to run once every Tuesday. On Monday, the SQL Server Agent service is stopped and then restarted the following Wednesday. The report snapshot that was scheduled for Tuesday is not created when the service is started.
If the report server is stopped while schedules are in the SQL Server Agent queue, the server triggers the schedules even though the report server is unavailable. Although the report server does not run the report or perform the scheduled operation, the status information reflected by SQL Server Agent indicates that the schedule succeeded.