Upgrading Reporting Services - What about my Report Definitions (RDLs)?
Some folks have asked me what happens when I upgrade my RS 2000 to an RS 2005 deployment with respect to Report Definitions (RDLs). This is an interesting lifecycle problem that we’ve approached using the following idea:
What you publish to the report server is what you retrieve from the report server.
Here’s how it works: Say you have an RS 2000 Reporting Services deployment that has a number of working reports in it. You probably have one or more corresponding report projects that you edit in Report Designer in Visual Studio 2003 .Net. When you publish these reports, the RDL is stored in the Report Server Database (not the file system!). The RDL is stored and we create a corresponding compiled version of the report that we also store. If you use Report Manager to request the RDL (Properties Tab + General Page + Edit) we’ll retrieve for you the RDL you supplied. You can go ahead and edit that RDL in the RS 2000 Report Designer.
The exact same process happens when you deploy RS 2005 – just that now you’re editing reports using the RS 2005 Report Designer in Business Intelligence Development Studio (based on Visual Studio 2005). A key thing to note is that the RS 2005 RDL is different from the RS 2000 RDL. Also, the compiled version of the report in RS 2005 is different from the compiled version of the report in RS 2000.
So, what happens on upgrade? What should I expect?
First – note that if you upgrade an instance of RS 2000 to RS 2005, the RS 2000 Report Designer will be uninstalled. So if you need to use both RS 2000 and RS 2005 in your business, consider installing RS 2005 side-by-side with the existing RS 2000. This will only apply to a development box since on a server you likely will not install the Report Designer.
Next – the RS 2005 Report Designer does not output RS 2000 RDLs. So if you need to develop reports for RS 2000, keep the old Report Designer and Visual Studio 2003 .Net around. The RS 2005 Report Designer prompts you to upgrade RS 2000 RDLs. If you accept the choice the RDL will become an RS 2005 RDL and won’t work on an RS 2000 server anymore! All is not lost if you get a case of ‘buyer’s remorse’ after you did the upgrade and don’t have a back up of the original RDL – read on.
Now the fun part – The RS 2005 Report Server can run RS 2000 RDLs. You can publish them to the Report Server. When you do that, we compile it into the RS 2005 compiled format. We do not change the RDL in any way. So when you retrieve it from the report server, you’ll get the original RS 2000 RDL you published to the server. Pretty nifty. So all those report projects that you had in RS 2000 Report Designer will continue to publish just fine to the RS 2005 server. When you edit them, you’ll obtain the RS 2000 RDL.
Let’s keep going with this – If you upgraded your Report Server to the 2005 version, you’ll be happy to know that the RDLs you published again won’t be affected. If you edit them, they’ll get the original RS 2000 RDLs. So if you got some of that buyer’s remorse you’ll still have access to your RS 2000 RDLs from the report server.
Ok one last thing – I said that the RS 2005 compiled report format is different from the one used in RS 2000. So the question needs to be asked – how does the Report Server handle this after upgrade? What we do is the first time the report is accessed after the upgrade we recompile the report to match out new schema. We do this on demand. So if you have a report that is never run, its compiled format is never updated, and you never have to experience the drain on CPU/Memory associated with that task.
Ok, that’s RDL upgrade in a nutshell. Hope this is useful to you all.
Take care and good luck,