Condividi tramite


Elaborazione pianificazione e recapito

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 nelle cartelle della posta in arrivo o in destinazioni di cartelle condivise.

Elaborazione pianificazione e recapito è un componente interno utilizzato dal server di report per elaborare le sottoscrizioni e il recapito di report oppure per aggiornare uno snapshot o impostare la scadenza di un report memorizzato nella cache. Se si configurano funzionalità server o si risolvono problemi di sottoscrizione o recapito, è possibile utilizzare le informazioni di questo argomento per identificare le fasi dell'elaborazione pianificata e le dipendenze da altri servizi e tecnologie. In questo argomento viene inoltre presentata un'introduzione alle impostazioni di configurazione che è possibile utilizzare per gestire la coda degli eventi.

Funzionamento di Elaborazione pianificazione e recapito

Elaborazione pianificazione e recapito offre le funzionalità seguenti:

  • Gestisce una coda di eventi e notifiche nel database del server di report. 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. Tutta l'elaborazione di report che si verifica come conseguenza di un evento pianificato viene eseguita come processo in background.

  • 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 del server di report e utilizza SQL Server Agent come timer per generare eventi pianificati. Nella descrizione dettagliata seguente viene illustrato il funzionamento delle operazioni pianificate in una distribuzione di Reporting Services:

  1. Un'operazione pianificata viene definita quando un utente crea una pianificazione. Con la pianificazione vengono definite una data e un'ora che verranno utilizzate per l'attivazione di una sottoscrizione per il recapito di 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 che include le informazioni di 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.

    Prima dell'elaborazione degli eventi, Elaborazione pianificazione e recapito esegue un passaggio di autenticazione per verificare che il proprietario della sottoscrizione disponga delle autorizzazioni per visualizzare il report. Per ulteriori informazioni sulle sottoscrizioni, vedere Elaborazione di sottoscrizioni.

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 del server di report e SQL Server Agent. La funzionalità Elaborazione pianificazione e recapito deve essere abilitata mediante la proprietà ScheduleEventsAndReportDeliveryEnabled del facet Surface Area Configuration for Reporting Services della gestione basata sui criteri. Affinché vengano eseguite le operazioni pianificate, è necessario che SQL Server Agent e il servizio del server di report siano in esecuzione.

[!NOTA]

È possibile utilizzare il facet Surface Area Configuration for Reporting Services per interrompere le operazioni pianificate temporaneamente o definitivamente. Anche se è possibile creare e distribuire estensioni personalizzate per il recapito, Elaborazione pianificazione e recapito non è estendibile né è possibile modificare il modo in cui gestisce eventi e notifiche. Per ulteriori informazioni sulla disattivazione di funzionalità, vedere Procedura: Attivazione o disattivazione delle funzionalità di Reporting Services.

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 del server di report

Se si interrompe il servizio del server di report, 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 del server di report è 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 del server di report tutte le richieste di elaborazione di report presenti nella coda verranno elaborate nell'ordine in cui sono state inserite.