views:

1975

answers:

2

We have a 2005 report that can be 2 to around 250 pages with the average being in the ballpark of 10. When the report was developed, our developer was told that 10 pages or so was the right number, and without knowing the business domain very well he decided reporting services was the correct approach.

Now that the report has been deployed to PROD, we are having some complaints of the report timing out. Neither the developer or I on this are terribly surprised given the sheer size of the report that is being requested (250 pages).

My question is what options do we have to use our current report that works 95% of the time and make it work for the remaining 5%? Are there configuration options anywhere to improve the rendering performance or anything like that?

The report is used for return authorizations so the size of the returns can very. Each authorization page has 4 different return labels with logos and barcodes.

To clarify:

The report is rendered fairly quickly from reporting services to the report viewer, but when we export to PDF is when it takes a while to load.

A: 

There is a report execution timeout setting for each report in SSRS. By default, they are set to use the default system setting, but they can be customized through the report manager or SSMS.

Are you sure it isn't a database command timeout? That could be adjusted in the connection string. Is it the report that is inefficient or the query? 250 pages for a SSRS report really isn't that bad. We run reports that large often. SSRS actually outperforms most of the other reporting engines we use.

NYSystemsAnalyst
Definitely not a DB timeout. The data is retrieved very quickly. I'm trying the increased timeout for the report itself.
RSolberg
A: 

You can fiddle with any of the following:

1) Modify SessionTimeout and SessionAccessTimeout system properties.

Here is a sample script for rs.exe which will set these values for you:

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 

You can run this script with the following command:

rs -i sessionTimeout.rss -s http://localhost/reportserver -v timeout="6000"The timeout is expressed in seconds, so this example sets the SessionTimeout and SessionAccessTimeouts to about an hour and a half.

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

2) Change Report Execution Timeout via Report Manager Open Report Manager At the top of the page, click Site Settings. This opens the General Properties page of the site.

Report Execution Timeout Specify whether report processing times out after a certain number of seconds. (via http://msdn.microsoft.com/en-us/library/ms181194.aspx)

3) Set the HttpRuntime ExecutionTimeout

a. Open the ReportServer’s Web.config file by going to Start -> Administrative Tools -> Internet Information Services. b. From there, expand Web Sites -> Default Web Site, and click on ReportServer. On the right-hand pane, right-click ‘Web.Config’ and select ‘Open’. c. Locate the HttpRuntime parameter. If it doesn’t exist, you will have to create it within the section. d. Set the executionTimeout value to ‘10800’ (3 hours) as shown below:

<system.web>
<httpRuntime executionTimeout = "10800" />
</system.web>

4) Increase the script timeout on the report server

  1. Go onto your Reporting Server and open up Internet Information Services; right-click on the ReportServer and select Properties.
  2. Go to the Options tab, and set the ASP Script timeout to 300 seconds (this didn't really work for me).

5) Set the report to never time out on the server

  1. Open your web browser on the server and go to http://localhost/Reports
  2. Navigate to the Report location and click on the problem report(s).
  3. On the left-hand pane, click on Properties.
  4. In the ‘Report Execution Timeout’ click the ‘Do not timeout report execution’. (via http://geekswithblogs.net/ssrs/archive/2009/10/30/steps-to-resolve-ssrs-timeout-issues.aspx)
Ryan Shripat