We are experiencing a slow start up time on the first report request of the day, or when there have been no report requests for an unknown period of time. In SQL Reporting
SQL Server 2008
does not use IIS, which is why the RecycleTime parameter moved to the RS config file. This also means that you can install the report server on your database server for better performance, without also having to install IIS.
The default RecycleTime of 720 (12 hours) should be reasonable for a report server that is only active during regular business hours. Nevertheless I have the same issue, even though I schedule a report subscription to run at 7:30 AM every weekday to cause the report server to initialize for the day.
I am wondering now if the RecycleTime parameter really is specified in minutes or if this might be a documentation error. I am going to try a larger value.
I did not find the parameter referenced in tcc'sresponse. However his response did clue me in to the existence of configuration file; I did find a page that had detail on the contents:
MSDN: How to: Modify a Reporting Services Configuration File
In it I found the RecycleTime parameter. It defaults to 720 which feels like the 20 minutes or so it took to time out. I set it to 28800.
I restarted the Reporting Services service for good measure, and accessed the site. It took the usual minute or two to come up and during that time the server was working hard. It is snappy now; I will test throughout the day to see if this keeps Report Services from recycling the process and rebuilding every 20 minutes and report back to this site.
I believe the solution is to add a ProcessTimeout key in the rsreportserver.config file. There is this key in this file from the default installation but it is commented out. I'm not sure if this is minutes or seconds, but I modifed it to 28800 and the process was still running first thing this morning after no activity for over 12 hours. The first report loaded in a few seconds.
The file is located in ~/program files/microsoft sql server/msrs10.mssqlserver/reporting services/reportserver
I also modified the 7200 in this file.
By setting RecycleTime to 28800 you are only increasing the time between slow startups. It will still take time for the first report to run after the 480 hours. You can set RecyleTime to 0 to stop it recycling if this helps.
If this is not an option you can keep it alive by a number of methods such as:
1.) Scheduling a dummy report in SSRS Report Manager Web site (My favoured approach)
2.) Scheduled Script
I realise this is an old question but it's not well documented, hope this helps someone out there.
I'm running SQL Server 2008 R2, and there are two settings (which were initally commented-out) in my rsreportserver.config that I uncommented and configured. My values are shown below:
<Add Key="ProcessTimeout" Value="4320" /><!-- seconds -->
<Add Key="ProcessTimeoutGcExtension" Value="30" /><!-- seconds -->
At the time of this writing, these config elements are not documented in the MSDN docs for the rsreportserver.config file for SQL Server 2008 R2, however there is a KB article that briefly describes them under More Information:
There are two configuration settings that determine how long the Process Monitor waits for service activity before stopping the service. These settings are defined as follows:
- ProcessTimeout
This setting applies to any operation that Reporting Services is performing.- ProcessTimeoutGcExtension
This setting applies only if garbage collection is in progress, and the ProcessTimeout value was reached.
Using the ProcessTimeout
setting kept my SSRS instance awake, and setting the RecycleTime
setting to a suitably large value (in my case 30 days, or 43,200 seconds) helped stave off the mandatory recycle that is incurred when that time span elapses.