2009-05-08 26 views
13

Abbiamo un rapporto del 2005 che può essere compreso tra 2 e circa 250 pagine con la media che si trova nel campo da baseball di 10. Quando il rapporto è stato sviluppato, al nostro sviluppatore è stato detto che 10 pagine erano il numero giusto, e senza conoscere bene il dominio aziendale, decise che i servizi di segnalazione erano l'approccio corretto.Reporting Report Timeout report

Ora che il rapporto è stato distribuito a PROD, stiamo avendo alcuni reclami per il timeout del rapporto. Né lo sviluppatore né io su questo sono terribilmente sorpresi vista la dimensione del rapporto che viene richiesto (250 pagine).

La mia domanda è quali opzioni abbiamo per utilizzare il nostro rapporto corrente che funziona il 95% delle volte e farlo funzionare per il restante 5%? Ci sono opzioni di configurazione ovunque per migliorare le prestazioni di rendering o qualcosa del genere?

Il report viene utilizzato per il ritorno autorizzazioni in modo che la dimensione dei rendimenti può molto. Ogni pagina di autorizzazione dispone di 4 diverse etichette di reso con loghi e codici a barre.

per chiarire:

Il rapporto è reso abbastanza rapidamente da Reporting Services per il visualizzatore di report, ma quando esportiamo in PDF è quando ci vuole un po 'a carico.

+1

Leggendo questo ho pensato che era un collega di scrivere questo, come ho quasi la stessa identica situazione ... – CaffGeek

+0

Ho avuto lo stesso problema qui. Stavo ricevendo e HTTP Request Execution Timeout error perché stavo cercando di rendere il report tramite il servizio web asmx. Ho appena eseguito l'RDP nel server e l'ho eseguito da http: // localhost/reports ed è stato esportato correttamente in PDF perché il timeout di esecuzione per quel sito è di 9000 secondi. Il solo timeout dell'esecuzione per il mio sito di chiamata avrebbe risolto anche questo, ma non volevo modificare il web.config, facendo sì che il server aggiornasse tutte le sessioni e facesse partire tutti, ecc. –

risposta

3

Esiste un'impostazione di timeout di esecuzione del rapporto per ogni rapporto in SSRS. Per impostazione predefinita, sono impostati per utilizzare le impostazioni di sistema predefinite, ma possono essere personalizzati tramite il gestore report o SSMS.

Sei sicuro che non sia un timeout di comando del database? Questo potrebbe essere regolato nella stringa di connessione. È il rapporto che è inefficiente o la query? Le 250 pagine per un rapporto SSRS non sono poi così male. Eseguiamo rapporti spesso grandi. Gli SSRS superano di fatto la maggior parte degli altri motori di reporting che usiamo.

+0

Decisamente non un timeout del database. I dati vengono recuperati molto rapidamente. Sto provando il timeout aumentato per il report stesso. – RSolberg

20

Si può giocherellare con uno dei seguenti:

1) Modifica SessionTimeout e SessionAccessTimeout proprietà del sistema.

Ecco uno script di esempio per rs.exe in cui saranno definiti i valori per voi:

Public Sub Main() 
    Dim props() as [Property] 
    props = new [Property]() { new [Property](), new [Property]() } 

    props(0).Name = "SessionTimeout" 
    props(0).Value = timeout 

    props(1).Name = "SessionAccessTimeout" 
    props(1).Value = timeout 

    rs.SetSystemProperties(props) 
End Sub 

È possibile eseguire questo script con il seguente comando:

rs -i sessionTimeout.rss -s http://yourserver.com/reportserver -v timeout="6000" 

Il timeout è espresso in secondi, quindi questo esempio imposta SessionTimeout e SessionAccessTimeouts a circa un'ora e mezza.

(via http://blogs.msdn.com/b/jgalla/archive/2006/10/11/session-timeout-during-execution.aspx)

2) Variazione Relazione timeout di esecuzione tramite Gestione report Aprire Gestione rapporti Nella parte superiore della pagina, fare clic su Impostazioni sito. Questo apre la pagina delle proprietà generali del sito.

Timeout esecuzione rapporto Specificare se l'elaborazione del rapporto è scaduta dopo un determinato numero di secondi. (via http://msdn.microsoft.com/en-us/library/ms181194.aspx)

3) Impostare il HttpRuntime ExecutionTimeout

  1. Aprire file web.config del ReportServer andando su Start -> Strumenti di amministrazione -> Internet Information Services.
  2. Da lì, espandere Siti Web -> Sito Web predefinito e fare clic su ReportServer. Nel riquadro di destra, fai clic con il pulsante destro del mouse su "Web.Config" e seleziona "Apri".
  3. Individuare il parametro HttpRuntime. Se non esiste, dovrai crearlo all'interno della sezione.
  4. Impostare il valore executionTimeout a '10800' (3 ore) come illustrato di seguito:
<system.web> 
    <httpRuntime executionTimeout = "10800" /> 
</system.web> 

4) aumentare il timeout script sul server di report

  1. andare su il tuo server di report e apri Internet Information Services; fare clic con il tasto destro del mouse su ReportServer e selezionare Proprietà.
  2. Passare alla scheda Opzioni e impostare il timeout dello Script ASP su 300 secondi (ciò non ha funzionato per me).

5) Impostare il rapporto di non timeout sul server

  1. Aprire il browser Web sul server e andare a http://yourserver.com/Reports
  2. Accedere alla posizione report e fare clic sul problema rapporti).
  3. Nel riquadro a sinistra, fare clic su Proprietà.
  4. Nel "Timeout dell'esecuzione del report" fare clic su "Esecuzione del rapporto di non eseguire il timeout". (via http://geekswithblogs.net/ssrs/archive/2009/10/30/steps-to-resolve-ssrs-timeout-issues.aspx)