Condividi tramite


Elaborazione pianificazione e recapito

SQL Server Reporting Services include il componente Elaborazione pianificazione e recapito per supportare le operazioni pianificate e determinare le estensioni per il recapito utilizzate per eseguire il push dei report a cartelle Posta in arrivo o destinazioni in cartelle condivise. Elaborazione pianificazione e recapito offre le funzionalità seguenti:

  • Gestisce una coda di eventi e notifiche. In una distribuzione con scalabilità orizzontale la coda viene condivisa tra tutti i server di report che appartengono alla distribuzione.
  • Chiama Elaborazione report per eseguire report, elaborare sottoscrizioni o cancellare un report memorizzato nella cache. Tutte le operazioni di elaborazione di report attivate a seguito di un evento pianificato vengono eseguite dal servizio Windows ReportServer anziché dal servizio Web ReportServer.
  • Chiama l'estensione per il recapito specificata in una sottoscrizione in modo da consentire il recapito del report.

Altri aspetti di un'operazione di pianificazione e recapito vengono gestiti da altri componenti e servizi compatibili con Elaborazione pianificazione e recapito. In particolare, Elaborazione pianificazione e recapito viene eseguito nel servizio Windows ReportServer e utilizza SQL Server Agent come timer per generare eventi pianificati. Nell'elenco seguente viene descritto il funzionamento delle operazioni pianificate in una distribuzione di Reporting Services:

  1. Un'operazione pianificata viene definita quando un utente crea una pianificazione. Nella pianificazione viene indicata la data e l'ora che verranno utilizzate per l'esecuzione di un report, l'aggiornamento di uno snapshot o la scadenza di una cache.
  2. Il server di report salva le informazioni relative alla pianificazione nel database del server di report.
  3. Il server di report crea un processo corrispondente in SQL Server Agent e lo esegue sulle informazioni relative alla pianificazione specificate. I processi vengono creati tramite una stored procedure utilizzando la connessione aperta esistente al database del server di report.
  4. SQL Server Agent esegue il processo nella data e all'ora specificate nella pianificazione. Il processo crea un evento che viene aggiunto a una coda gestita da Reporting Services.
  5. Tale evento causa l'esecuzione di un processo di report o sottoscrizione. Gli eventi vengono elaborati quando vengono rilevati nella coda e il report viene elaborato o recapitato di conseguenza.

Reporting Services gestisce una coda degli eventi per tutte le operazioni pianificate ed esegue il polling della coda a intervalli regolari per verificare la disponibilità di nuovi eventi. Per impostazione predefinita, la scansione della coda viene eseguita a intervalli di 10 secondi. Per cambiare l'intervallo, è possibile modificare le impostazioni di configurazione PollingInterval, IsNotificationService e IsEventService nel file RSReportServer.config. Per ulteriori informazioni, vedere File di configurazione RSReportServer.

Dipendenze dai servizi del server

Per il funzionamento di Elaborazione pianificazione e recapito è necessario che vengano avviati il servizio Windows ReportServer e SQL Server Agent. La funzionalità di elaborazione della pianificazione e del recapito deve essere attivata tramite lo strumento Configurazione superficie di attacco di SQL Server. Affinché vengano eseguite le operazioni pianificate, è necessario che SQL Server Agent e il servizio Windows ReportServer siano in esecuzione.

[!NOTA] È possibile utilizzare lo strumento Configurazione superficie di attacco per interrompere le operazioni pianificate temporaneamente o definitivamente. Elaborazione pianificazione e recapito non è estensibile e non dispone di impostazioni di configurazione, né è possibile modificare il modo in cui gestisce eventi e notifiche. Per ulteriori informazioni sullo strumento Configurazione superficie di attacco, vedere Configurazione superficie di attacco di SQL Server.

Effetti dell'interruzione di SQL Server Agent

Per l'elaborazione pianificata di report viene utilizzato SQL Server Agent per impostazione predefinita. Se si interrompe il servizio, non verranno aggiunte nuove richieste di elaborazione alla coda a meno di aggiungerle a livello di programmazione utilizzando il metodo FireEvent. Quando si riavvia il servizio, i processi che creano le richieste di elaborazione di report vengono ripresi. Il server di report non tenterà di ricreare i processi di elaborazione di report riferiti al periodo in cui SQL Server Agent non era in linea. Se si interrompe SQL Server Agent per una settimana, tutte le operazioni pianificate per quella settimana andranno perse.

[!NOTA] La funzionalità assicurata da SQL Server Agent a Reporting Services può essere sostituita da codice personalizzato che utilizza il metodo FireEvent per aggiungere eventi pianificati alla coda.

Effetti dell'interruzione del servizio Windows ReportServer

Se si interrompe il servizio Windows ReportServer, SQL Server Agent continuerà ad aggiungere richieste di elaborazione di report alla coda. Le informazioni sullo stato di SQL Server Agent indicano che il processo è stato completato, ma poiché il servizio Windows ReportServer è interrotto, non viene effettivamente eseguita alcuna operazione di elaborazione di report. Le richieste continueranno ad accumularsi nella coda finché il servizio non verrà riavviato. Dopo il riavvio del servizio Windows ReportServer tutte le richieste di elaborazione di report presenti nella coda verranno elaborate nell'ordine in cui sono state inserite.

Vedere anche

Concetti

File di configurazione RSReportServer
Avvio e interruzione del servizio Windows ReportServer
Panoramica dei componenti di Reporting Services

Altre risorse

Recapito di report tramite sottoscrizioni
Pianificazione di report e sottoscrizioni

Guida in linea e informazioni

Assistenza su SQL Server 2005