Gestione di un processo in esecuzione

SQL Server Reporting Services consente di monitorare lo stato dei processi in esecuzione nel server di report. Il server di report effettua un'analisi a intervalli regolari dei processi in corso e scrive informazioni sullo stato nel database del server di report. Un processo è considerato in corso se è in esecuzione una delle operazioni seguenti, ovvero esecuzione di query su un server database locale o remoto, elaborazione di report e rendering di report.

È possibile gestire sia i processi utente sia i processi di sistema. I processi utente vengono avviati da un singolo utente o da una sottoscrizione. Includono l'esecuzione di un report su richiesta, la richiesta di uno snapshot della cronologia del report, la creazione manuale di uno snapshot del report e l'elaborazione di una sottoscrizione standard. I processi di sistema vengono avviati dal server di report. Includono snapshot dell'esecuzione di report pianificati, snapshot della cronologia dei report pianificati e sottoscrizioni guidate dai dati.

L'utilizzo delle risorse e il tempo di elaborazione del report variano significativamente a seconda del report, della complessità della query, della quantità di dati e del formato di rendering specificato per il report. I report con query semplici su un'origine dei dati locale vengono spesso completati in millisecondi e non richiedono mai operazioni di gestione o di ottimizzazione. Un report di grandi dimensioni per il quale viene eseguito il rendering nel formato PDF o Excel può richiedere, al contrario, un tempo di elaborazione elevato a seconda delle risorse hardware, delle opzioni di recapito e dall'eventuale esecuzione di altri processi simultaneamente. Su un server di report la maggior parte dei processi con esecuzione prolungata riguarda le operazioni di rendering dei report e i processi in attesa di conclusione dell'elaborazione di query. Può talvolta essere necessario annullare l'elaborazione di un report per mettere un computer in modalità offline o per arrestare un processo in esecuzione il cui completamento richiede troppo tempo.

Visualizzazione e annullamento di processi

È possibile utilizzare SQL Server Management Studio per visualizzare o annullare un processo in esecuzione nel server di report. È necessario aggiornare la pagina per recuperare un elenco di processi attualmente in esecuzione oppure per ottenere stato del processo aggiornato dal database del server di report. Quando si esegue la connessione a un server di report in Management Studio, è possibile aprire una cartella Processi per visualizzare un elenco di report che attualmente in esecuzione nel computer server di report. Le informazioni sullo stato per ogni processo vengono visualizzate nella pagina Proprietà processo. Per visualizzare informazioni sullo stato di tutti i processi, aprire la finestra di dialogo Annulla processi server di report.

È possibile annullare i processi seguenti:

  • Elaborazione di report su richiesta.

  • Elaborazione di report pianificati.

  • Sottoscrizioni standard appartenenti a utenti singoli.

L'annullamento di un processo comporta l'annullamento solo dei processi in esecuzione nel server di report. Poiché il server di report non gestisce elaborazione di dati su altri computer, è necessario annullare manualmente i processi di query che rimangono di conseguenza isolati su altri sistemi. Per chiudere automaticamente le query con esecuzione eccessivamente prolungata, è possibile specificare valori di timeout delle query. Per ulteriori informazioni, vedere Impostazione dei valori di timeout per l'elaborazione di report e di set di dati condivisi (SSRS). Per ulteriori informazioni sulla sospensione temporanea di un report, vedere Sospensione dell'elaborazione del report e della sottoscrizione.

Nota

Per annullare un processo, in rare circostanze potrebbe essere necessario riavviare il server. Per ulteriori informazioni, vedere Avvio e interruzione del servizio del server di report.

Non è possibile utilizzare Management Studio per elencare o annullare la generazione o l'elaborazioni di modelli o sottoscrizioni guidate dai dati. In Reporting Services non è possibile annullare la generazione o l'elaborazione di modelli. Per annullare sottoscrizioni guidate dai dati, è possibile tuttavia utilizzare le istruzioni fornite in questo argomento.

Annullamento di un'elaborazione del report o di una sottoscrizione

  1. In Management Studio connettersi al server di report. Per istruzioni, vedere Procedura: Connessione a un server di report in Management Studio.

  2. Aprire la cartella Processi.

  3. Fare clic con il pulsante destro del mouse sul report, quindi scegliere l'opzione per annullare i processi.

Annullamento di una sottoscrizione guidata dai dati

  1. Aprire il file RSReportServer.config in un editor di testo.

  2. Individuare IsNotificationService.

  3. Impostarlo su False.

  4. Salvare il file.

  5. In Gestione report eliminare la sottoscrizione guidata dai dati dalla scheda Sottoscrizioni del report o da Sottoscrizioni personali.

  6. Dopo avere eliminato la sottoscrizione, nel file RSReportServer.config individuare IsNotificationService e impostarlo su True.

  7. Salvare il file.

Configurazione delle impostazioni di frequenza per il recupero dello stato di un processo

Un processo in esecuzione viene archiviato nel database temporaneo del server di report. Per controllare la frequenza con la quale il server di report esegue l'analisi dei processi in corso e l'intervallo trascorso il quale lo stato di un processo cambia da nuovo a in esecuzione, è possibile modificare le impostazioni di configurazione nel file RSReportServer.config. L'impostazione RunningRequestsDbCycle consente di specificare la frequenza con la quale il server di report esegue l'analisi dei processi in esecuzione. Per impostazione predefinita, le informazioni sullo stato vengono registrate ogni 60 secondi. L'impostazione RunningRequestsAge consente di specificare l'intervallo dopo il quale un processo passa da nuovo a in esecuzione.

Gestione di processi a livello di programmazione

I processi possono essere gestiti a livello di programmazione o mediante l'utilizzo di uno script. Per ulteriori informazioni, vedere ListJobs, CancelJob.