After reporting services have been idle for a time, the next hit on it can be extremely slow. This is, as with every other RS problem, an IIS thing.
The problem is that when the IIS is not getting any traffic, it “goes to sleep”, to clear up memory for other applications.
That is nice, in the case where you are using the server for something else, and when you are only hosting standard ASP.NET pages, that can start up relatively fast.
It is not so nice when you are using the server for reporting with reporting services. Then the first hit can take up to minutes.
There are some solutions to it, depending of your version of IIS and SQL server.
IIS 6.0 and above and reporting services 2005:
- Open IIS manager
- Under application pools right click DefaultAppPool and select properties.
- Under the performance tag, you can change the value for the idle timeout. Default is 20 minutes. If you change it to 480(60*8)(A working day), only the first hit of the day will be slow.
- You can solve this problem by creating a dummy report each morning before everyone meets(See below)
IIS 5.1 and reporting services 2005
IIS 5.1 doesn’t come with an application pool, so here you have to change the idle timeout a different place.
The idle timeout for the IIS is placed in the machine.config file.
The machine.config is located somewhere around here:
Change the tag
<processModel idleTimeout=”08:00:00″ autoConfig=”true”/>
That should solve the problem, but you should still have the problem with the first report of the day, so you still have to schedule a dummy report.
Reporting services 2008
So what about reporting services 2008, where you don’t even need the IIS?
I don’t know, but I hope and guess, that is something simple. Please let me know if you know the answer 🙂
Creating a dummy report
There are two ways to create a dummy report.
The right way, is to schedule a report, and copy it to a file share or have it mailed to you.
If you don’t have those possibilities for some reason. You can create a report, that refreshes itself every hour or so. That way, the report server won’t fall asleep either.