<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Musings on Reporting Services and Notification Services</title><link>http://blogs.msdn.com/lukaszp/default.aspx</link><description>My name is Lukasz Pawlowski.  I am a Program Manager on the Reporting Services team.  I am responsible also for the Notification Services product.  

I'll use this blog to share some sample code, discuss any common questions I get around either RS or NS.  

Hope this is useful to you.  Send me feedback and I'll try to tailor the content to what you folks are looking for.
</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>High Availability – Frequently Asked Questions about Failover Clustering and Reporting Services</title><link>http://blogs.msdn.com/lukaszp/archive/2009/10/28/high-availability-frequently-asked-questions-about-failover-clustering-and-reporting-services.aspx</link><pubDate>Wed, 28 Oct 2009 23:39:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9914415</guid><dc:creator>lukaszp</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/9914415.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=9914415</wfw:commentRss><description>&lt;p&gt;In SSRS high availability is achieved through a Scale-out deployment that is placed behind a Network Load Balancer (NLB).&amp;#160; The NLB is then responsible for routing requests to Report Server nodes that are responding to requests.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;i&gt;High Availability Documentation Reference&lt;/i&gt;: &lt;a href="http://msdn.microsoft.com/en-us/library/bb522745.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb522745.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;However, many customers are interested in using Windows Failover Clustering with SSRS, since this is how they deploy their SQL Servers.&amp;#160; This article discusses Windows Failover Clustering in regards to SSRS.&lt;/p&gt;  &lt;p&gt;Windows offers built-in Failover Clustering capability.&amp;#160; SSRS does not natively support Windows Failover Clustering.&amp;#160; The use of Failover Clustering with SSRS service is possible using standard capabilities of Windows Failover Clustering; however it may not be desirable as explained below. &lt;/p&gt;  &lt;p&gt;Standard features of Windows Failover Clustering include a Generic Service and a Generic Script cluster resource.&amp;#160; Each of these resources can be used in conjunction with SSRS to achieve failover during a server down situation.&amp;#160; The Generic Service cluster resources can be used to determine whether the service is running or not and to failover to another cluster node when the service stops running for whatever reason.&amp;#160; This option has the limitation that it will not detect service hangs.&amp;#160; The Generic Script cluster resource allows the IT administrator to monitor any desired attribute of the service (performance counters, response time, service started/stopped, etc.) to determine when to failover to another cluster node.&amp;#160;&amp;#160;&amp;#160; Using a Generic Script resource allows you to overcome the limitations of the Generic Service resource, at additional implementation cost.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Generic Script Resource&lt;/i&gt;: &lt;a href="http://msdn.microsoft.com/en-us/library/aa373089(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa373089(VS.85).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Generic Script Resource Example&lt;/i&gt;: &lt;a href="http://msdn.microsoft.com/en-us/library/aa372844(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa372844(VS.85).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When configuring a failover group, a Network resource (IP Address, NetBIOS name) is usually added to ensure that client machine configurations to not need to change in case of failover.&amp;#160; During an actual failover, the network resource is moved first to the new active cluster node, and then any other resources are moved based on the failover group dependency tree.&amp;#160;&amp;#160;&amp;#160; This means that during the failover there is some time during which users will receive errors when accessing SSRS since the network names will resolve to a computer where the SSRS service is in the process of starting.&amp;#160; This is expected given the design of failover clustering.&lt;/p&gt;  &lt;p&gt;Though a failover clustered SSRS deployment is achievable, it may not be desirable.&amp;#160; There are a number of factors to consider:&lt;/p&gt;  &lt;p&gt;a. Impact on other applications that share the SQL Server: One common idea is to put SSRS in the same cluster group as SQL Server.&amp;#160; If SQL Server is hosting multiple application databases, other than just the SSRS databases, a failure in SSRS may cause a significant failover impact to the entire environment.&amp;#160; This consideration should be carefully evaluated before deploying SSRS in the same cluster group as SQL Server.&amp;#160;&amp;#160; We generally recommend that SSRS should be isolated from a high availability viewpoint from the SQL Server to minimize impact.&lt;/p&gt;  &lt;p&gt;b. SSRS failing over independently of SQL Server:&amp;#160;&amp;#160; Another idea is to put SSRS in a different cluster group as SQL Server.&amp;#160; When using this configuration after a failover different cluster nodes could be running SSRS and SQL Server.&amp;#160; If you use this configuration, ensure you have sufficient licenses to cover each cluster node with a running component of SQL Server (i.e. each RS server &amp;amp; each SQL Server).&amp;#160; &lt;/p&gt;  &lt;p&gt;c. Scalability of SSRS: in a failover cluster, only one SSRS server is handling requests.&amp;#160; In the NLB scenario, multiple nodes are handling requests, which will result in increased capacity.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Some additional considerations:&lt;/p&gt;  &lt;p&gt;Passive SSRS server: Customers sometimes want to know what a ‘Passive’ SSRS server looks like, or how to tell that SSRS is ‘Passive’.&amp;#160;&amp;#160; This has to do with the failover clustering licensing terms that come with the SQL Server box.&amp;#160;&amp;#160; For SSRS, since we don’t implement a cluster resource ourselves, the way to make SSRS ‘Passive’ is to stop the SSRS service.&amp;#160;&amp;#160; Reason for this that if SSRS is running, it is going to do work on behalf of the overall deployment so it will be ‘Active’.&amp;#160; So if you’re looking to get the licensing benefit of failover clustering for HA with SSRS, then you need to ensure that the SSRS service is stopped on all your passive cluster nodes.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Scale-out availability in Enterprise Edition:&amp;#160;&amp;#160; Customers sometimes discover that they need to purchase Enterprise Edition to have a scale-out deployment of SSRS.&amp;#160;&amp;#160; This is important to know if you’re trying to build a failover cluster with SSRS.&amp;#160; SQL Server offers failover clustering support with Standard Edition.&amp;#160;&amp;#160; This will mean that if you’re using Standard edition SSRS, you will need to handle the backup &amp;amp; restore of the symmetric key in the report server database in order to achieve a failover. This can be difficult since the symmetric key needs to be protected (it encrypts users names &amp;amp; passwords&amp;#160; stored in the report server database).&amp;#160; So you don’t want just anyone being able to get a copy of it and knowing the password used to encrypt the symmetric key itself.&amp;#160; Due to this, I would say that if you want to try to do a failover cluster deployment with SSRS, use Enterprise Edition.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To summarize, failover clustering with SSRS is possible, though there are a number of considerations and manual steps involved on your part.&amp;#160; SSRS is designed to achieve High Availability through a Scale-Out architecture.&amp;#160; As our documentation and best practices point out, that is your best option for achieving High Availability with Reporting Services.&lt;/p&gt;  &lt;p&gt;Take care and good luck,&lt;/p&gt;  &lt;p&gt;-Lukasz&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914415" width="1" height="1"&gt;</description></item><item><title>Building a robust setup experience with Reporting Services</title><link>http://blogs.msdn.com/lukaszp/archive/2009/07/02/building-a-robust-setup-experience-with-reporting-services.aspx</link><pubDate>Thu, 02 Jul 2009 18:39:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9814330</guid><dc:creator>lukaszp</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/9814330.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=9814330</wfw:commentRss><description>&lt;p&gt;This post is intended for ISVs or Product Development organizations who are planning to integrate Reporting Services into their product.&amp;#160;&amp;#160; Over the years I have seen a number of products do this and some get it right and some encounter issues.&amp;#160;&amp;#160; The part of the problem I’d like to focus on is recommendations for building your product’s setup/installation program when you know you have a dependency on Reporting Services. &lt;/p&gt;  &lt;p&gt;When building your setup program, you most likely want your installation to be easy for your users (painless) and result in a successful, working installation for the customer.&amp;#160;&amp;#160; This is the right focus to have for the customer, and is achievable.&amp;#160;&amp;#160; However, there is risk involved in putting too many eggs in your setup basket.&amp;#160; What follows is a broad strokes discussion of some often overlooked risks, followed by some specific recommendations at the end. &lt;/p&gt;  &lt;p&gt;The key problem when relying on another product’s installation, especially in complex deployment environments, is that the other product may require some additional configuration settings/customization in those environments.&amp;#160; As an ISV/Product Development org, you have limited resources.&amp;#160; You mitigate risk by testing in various common deployment scenarios, but there will always be a few machine configurations which cause your installation to fail, or result in a non-working product. &lt;/p&gt;  &lt;p&gt;Reporting Services has a reasonably complex deployment story.&amp;#160; Our installation tries to make it easy, and it has gotten easier in the latest release.&amp;#160; Since we are a web service, we regularly encounter problems with authentication due to SPN configuration, SSL certificates mis-configuration, network/firewall policies, etc.&amp;#160; We do a lot of work to try to avoid these problems and handle them, but sometimes it just doesn’t work out how we wanted it to.&amp;#160; A key problem for us is that patching our setup program with the current infrastructure is really hard (we essentially have to re-release the product).&amp;#160;&amp;#160; Let’s just say that’s an extremely costly activity :).&amp;#160; However, patching our code after it is installed is much easier – we have a regular Cumulative Update model and an On Demand Hotfix model which allows customers facing serious issues to get patches very quickly.&amp;#160; This cost ecosystem applies generally to ISVs who ship packaged product.&amp;#160; Even for those who offer downloaded products, the cost of re-verifying all the deployment scenarios in setup is very costly and will be undesirable. The key lesson is find ways not to have to change setup. &lt;/p&gt;  &lt;p&gt;So if you are an ISV building a setup program which will configure or install Reporting Services, you carry additional risk that SSRS configuration will not work which could result in your application setup rolling back.&amp;#160; If there is one sin in building your setup experience it is rolling back an installation when it is not absolutely necessary.&amp;#160;&amp;#160; Remember the customer can always use the uninstall feature to remove the product if it doesn’t work.&amp;#160; The reason you want setup to complete, even if there are failures along the way is that once the bits are installed on disk, they can easily be investigated by support personnel and it is easy to patch the installation.&amp;#160;&amp;#160;&amp;#160; If you’ve ever seen the pain of a developer trying to debug a setup program or repro bugs which cause setup roll back you will be keenly aware of how much time and effort goes into setup debugging.&amp;#160;&amp;#160;&amp;#160; Frankly, much of the developer’s/tester’s time is wasted waiting for setup to complete or clicking “next” in the setup UI.&amp;#160;&amp;#160; So there are operational benefits to your org/development cycle as well.&lt;/p&gt;  &lt;p&gt;So what should you do?&amp;#160; The pattern that works best for products that use Reporting Services is as follows:&lt;/p&gt;  &lt;p&gt;1) Build a setup program that completes regardless of whether the Reporting Services configuration succeeds. &lt;/p&gt;  &lt;p&gt;2) Build a configuration utility which can be run manually after your setup completes to configure Reporting Services.&amp;#160; &lt;/p&gt;  &lt;p&gt;By doing #1, you build an easy setup experience for the majority of your customers.&amp;#160; They will just install the product, the configuration of Reporting Services will succeed and everyone will be happy.&lt;/p&gt;  &lt;p&gt;By doing #2, you ensure that in the case of failure to configure Reporting Services, your customers have a back up plan.&amp;#160; This lets you debug the scenario and provide fixes to workaround any issues you may encounter.&amp;#160; It is also very useful in more complex scenarios like backup/restore, server migration, and multi-server provisioning where your customers may not actually want to run setup each time they need to provision Reporting Services to work with your product.&amp;#160; This side benefit is worth its weight in gold from an IT cost/time perspective and is often overlooked.&amp;#160;&amp;#160; Ideally, you will make this utility a command line utility which will enable IT to automate their installation procedures and save themselves no operational costs.&lt;/p&gt;  &lt;p&gt;Take care and good luck,&lt;/p&gt;  &lt;p&gt;-Lukasz&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9814330" width="1" height="1"&gt;</description></item><item><title>InternalCatalogException, ASSERT, or NullReferenceException when using a Custom Security Extension</title><link>http://blogs.msdn.com/lukaszp/archive/2009/05/08/internalcatalogexception-assert-or-nullreferenceexception-when-using-a-custom-security-extension.aspx</link><pubDate>Fri, 08 May 2009 23:50:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9597758</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/9597758.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=9597758</wfw:commentRss><description>&lt;p&gt;We have seen multiple customers with issues when customizing the Security Extension Sample (&lt;a href="http://msftrsprodsamples.codeplex.com/Wiki/View.aspx?title=SS2005%21Security%20Extension%20Sample&amp;amp;referringTitle=Home"&gt;2005&lt;/a&gt;, &lt;a href="http://msftrsprodsamples.codeplex.com/Wiki/View.aspx?title=SS2008%21Security%20Extension%20Sample"&gt;2008&lt;/a&gt;) that is available on &lt;a href="http://www.codeplex.com/"&gt;http://www.codeplex.com/&lt;/a&gt;. This is the sample that demonstrates how to create a Forms Authentication solution with SQL Server Reporting Services. &lt;p&gt;There are two scenarios which are the primary sources of the problems: &lt;p&gt;&lt;b&gt;Scenario 1: “Anonymous” access&lt;/b&gt; &lt;p&gt;Many custom security extension authors want to allow ‘anonymous’ access – where users do not need to login, or to allow all users some basic level of permission without needing to login explicitly. In order to do this, they change the sample code’s implementation of AuthenticationExtension.GetUserInfo to return a NULL for out IIdentity userIdentity. &lt;p&gt;However, this approach &lt;b&gt;breaks&lt;/b&gt; the contract SSRS has with the Security Extension. SSRS in all versions (2000, 2005, and 2008) &lt;b&gt;require&lt;/b&gt; that Custom Security Extensions specify a user name for all requests and the IIdentity returned by GetUserInfo must not be NULL. &lt;p&gt;&lt;b&gt;Scenario 2: Unexpected error in Authentication Extension&lt;/b&gt; &lt;p&gt;The implementation of AuthenticationExtension.GetUserInfo could throw an unexpected error. &lt;p&gt;Typically this happens when the cookie returned to the extension is not found or incorrectly processed. This can be a tricky area to get right and requires some iteration. &lt;p&gt;&lt;b&gt;Solutions: &lt;/b&gt; &lt;p&gt;Key thing for Authentication extension authors is that the error messages are hard to diagnose. We’d recommend that in your extension you fail authentication on errors and use a try-catch block to log the error message to your own log file specific to your authentication extension so that you can diagnose the state of the system when the failure occurred. &lt;p&gt;In the implementation of AuthenticationExtension.GetUserInfo, ensure you are returning a non-null IIdentity object and that UserName has a value. &lt;p&gt;&lt;b&gt;Diagnosis:&lt;/b&gt; &lt;p&gt;&lt;b&gt;In RS 2008:&lt;/b&gt; &lt;p&gt;We changed the error message we return to: &lt;p&gt;rsAuthenticationExtensionError - The Authentication Extension threw an unexpected exception or returned a value that is not valid: &amp;lt;value&amp;gt;. &lt;p&gt;When the authentication extension returns a null identity &amp;lt;value&amp;gt; will be “identity==null”. &lt;p&gt;If the authentication extension returns an error message from the AuthenticationExtension.GetUserInfo method then &amp;lt;value&amp;gt; will be the name of the exception. &lt;p&gt;&lt;b&gt;In RS 2005 and before:&lt;/b&gt; &lt;p&gt;The challenge to diagnose this issue is that the call stacks can vary depending on the call being made to the SSRS server. However, these typically will include an InternalCatalogException and in the call stack you’ll see ASSERT or NullReferenceException. &lt;p&gt;If AuthenticationExtension.GetUserInfo method throws an error, an InternalCatalogException or a NullReferenceException will be in the SSRS trace log file. &lt;p&gt;If UserName is NULL, you’re going to get an ASSERT on the server side and an error will be returned to the user. &lt;p&gt;Here are a couple of examples:  &lt;p&gt;&lt;b&gt;Example 1: ASSERT&lt;/b&gt; &lt;p&gt;w3wp!library!5!2/4/2009-14:31:47:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details., un-named assertion fired for component library;&lt;br&gt;Info: Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details.&lt;br&gt;w3wp!library!1!2/4/2009-14:32:10:: i INFO: Call to RenderFirst( '/VP Reports/Client/Generic/AdvFinChargesByAccount' )&lt;br&gt;w3wp!library!1!2/4/2009-14:32:11:: a ASSERT: Assertion failed! Call stack: &lt;p&gt;&lt;b&gt;Example 2: NullReferenceException&lt;/b&gt; &lt;p&gt;w3wp!library!8!06/21/2007-14:52:09:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details., ;&lt;br&gt;Info: Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details. ---&amp;gt; System.NullReferenceException: Object reference not set to an instance of an object.&lt;br&gt;at Microsoft.ReportingServices.WebServer.WebServiceHelper.ConstructRSServiceObjectFromSecurityExtension()&lt;br&gt;at Microsoft.ReportingServices.WebServer.Global.ConstructRSServiceFromRequest(String item)&lt;br&gt;at Microsoft.ReportingServices.WebServer.Global.get_Service()&lt;br&gt;at Microsoft.ReportingServices.WebServer.Global.DispatchRequest(Boolean&amp;amp; transferedToViewerPage)&lt;br&gt;at Microsoft.ReportingServices.WebServer.Global.Application_AuthenticateRequest(Object sender, EventArgs e) &lt;p&gt;&amp;nbsp; &lt;p&gt;Take care and good luck, &lt;p&gt;-Lukasz&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9597758" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lukaszp/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/lukaszp/archive/tags/Forms+Authentication/default.aspx">Forms Authentication</category></item><item><title>IIS Troubleshooting for SQL Server 2005 Reporting Services</title><link>http://blogs.msdn.com/lukaszp/archive/2009/02/04/iis-troubleshooting-for-sql-server-2005-reporting-services.aspx</link><pubDate>Wed, 04 Feb 2009 20:42:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9396226</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/9396226.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=9396226</wfw:commentRss><description>&lt;p&gt;Over the years, we have seen a number of IIS related issues that cause trouble for users who deploy SQL Server 2005 Reporting Services.&amp;nbsp; We have tried to resolve these in the MSDN Forums on a case by case basis.&amp;nbsp; Now we have compiled the common issues with IIS into a single KB Article along with explanation of why these occur and what can be done to resolve them.&amp;nbsp; Kudos to James Wu on the SSRS team for slogging through the issues and compiling them into this document.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/958998" target="_blank"&gt;How to troubleshoot IIS configuration issues in SQL Server 2005 Reporting Services&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Take care and good luck,&lt;/p&gt; &lt;p&gt;-Lukasz&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9396226" width="1" height="1"&gt;</description></item><item><title>Several blogs I would keep on my reading list...</title><link>http://blogs.msdn.com/lukaszp/archive/2009/01/23/several-blogs-i-would-keep-on-my-reading-list.aspx</link><pubDate>Fri, 23 Jan 2009 20:04:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9372865</guid><dc:creator>lukaszp</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/9372865.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=9372865</wfw:commentRss><description>&lt;p&gt;Recently I have had little time to devote to blogging, but I did want to pass along a couple of references that I tend to provide to customers, partners, and Microsoft internal folks as they dig deep into SSRS.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/robertbruckner/" target="_blank"&gt;Robert Bruckner&lt;/a&gt; has a great blog which offers many tips on SSRS, especially focusing on report processing.&amp;nbsp; The topic I tell customers to reference most often is how to use the &lt;a href="http://blogs.msdn.com/robertbruckner/archive/2009/01/05/executionlog2-view.aspx"&gt;ExecutionLog2 View for analyzing and optimizing reports&lt;/a&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/deanka" target="_blank"&gt;Dean Kalanquin&lt;/a&gt; has just started a new blog.&amp;nbsp; He's a old time SQL guy who can craft any SQL Query you can imagine.&amp;nbsp; He's started a blog and has created a post on how to &lt;a href="http://blogs.msdn.com/deanka/archive/2009/01/13/diagnosing-and-troubleshooting-subscriptions.aspx" target="_blank"&gt;diagnose and trouble shoot subscriptions&lt;/a&gt; which I think would be very helpful, especially to those who have read my previous posts on &lt;a href="http://blogs.msdn.com/lukaszp/archive/2005/12/30/monitoring-subscription-status-also-calling-rs-soap-methods-from-inside-reports.aspx" target="_blank"&gt;subscriptions&lt;/a&gt; &lt;a href="http://blogs.msdn.com/lukaszp/archive/2007/08/01/monitoring-subcription-status-new-reports.aspx" target="_blank"&gt;management&lt;/a&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Take care and good luck,&lt;/p&gt; &lt;p&gt;-Lukasz&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9372865" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lukaszp/archive/tags/Performance/default.aspx">Performance</category></item><item><title>SQL PASS Community Summit 2008 Presentation Links</title><link>http://blogs.msdn.com/lukaszp/archive/2008/11/21/sql-pass-community-summit-2008-presentation-links.aspx</link><pubDate>Fri, 21 Nov 2008 21:03:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9132108</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/9132108.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=9132108</wfw:commentRss><description>&lt;p&gt;Denny Lee and I presented on Wednesday at the SQL PASS Community Summit 2008 on Building SSRS 2008 Large Scale Solutions.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The slide deck is available for conference attendees at from the &lt;a href="http://summit2008.sqlpass.org/" target="_blank"&gt;conference site&lt;/a&gt;. However, the format is PDF and during the transformation from PowerPoint to PDF many of the links were lost.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I have compiled all the links from the presentation deck below for everyone's reference:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/default.mspx"&gt;SQLCAT.com&lt;/a&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/sqlcat"&gt;http://blogs.msdn.com/sqlcat&lt;/a&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/mssqlisv"&gt;http://blogs.msdn.com/mssqlisv&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/sqlserver/bb331794.aspx"&gt;http://technet.microsoft.com/en-us/sqlserver/bb331794.aspx&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/pspsqlrs.mspx"&gt;Planning for Scalability and Performance with Reporting Services&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms143747.aspx"&gt;Upgrading Reporting Services (SQL Books Online)&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms156453.aspx"&gt;Configuring a Report Server Scale-Out Deployment&lt;/a&gt; &lt;p&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/06/05/reporting-services-scale-out-architecture.aspx"&gt;Building and Deploying Large Scale SQL Server Reporting Services Environments Series&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/aa964139.aspx"&gt;Using Visual Studio 2005 to Perform Load Testing on a SQL Server 2005 Reporting Services Report Server&lt;/a&gt; &lt;p&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/07/09/scaling-up-reporting-services-2008-vs-reporting-services-2005-lessons-learned.aspx"&gt;Scaling Up RS 2008 vs. RS 2005: Lessoned Learned&lt;/a&gt; &lt;p&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2007/11/21/predeployment-i-o-best-practices.aspx"&gt;Predeployment&lt;/a&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2007/11/21/predeployment-i-o-best-practices.aspx"&gt; I/O Best Practices&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms187048.aspx"&gt;Backing Up and Restore Databases in SQL Server&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms190954.aspx"&gt;Optimizing Backup and Restore Performance in SQL Server&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms157275.aspx"&gt;Backing Up and Restore Encryption Keys&lt;/a&gt; &lt;p&gt;&lt;u&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms345584.aspx"&gt;Deploying a Scalable Shared Database&lt;/a&gt; &lt;/u&gt; &lt;p&gt;&lt;u&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2008/09/02/sql-server-replication-providing-high-availability-using-database-mirroring.aspx"&gt;SQL Server Replication: Providing High Availability using Database Mirroring&lt;/a&gt; &lt;/u&gt; &lt;p&gt;&lt;u&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2008/01/21/database-mirroring-and-log-shipping-working-together.aspx"&gt;Database Mirroring and Log Shipping&lt;/a&gt; &lt;/u&gt; &lt;p&gt;&lt;u&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms152531.aspx"&gt;SQL Server Replication Features&lt;/a&gt; &lt;/u&gt; &lt;p&gt;&lt;u&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2007/12/16/scale-out-querying-with-analysis-services.aspx"&gt;Scale-Out Querying with Analysis Services&lt;/a&gt; &lt;/u&gt; &lt;p&gt;&lt;u&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2007/11/19/scale-out-querying-with-analysis-services-using-san-snapshots.aspx"&gt;Scale-Out Querying with Analysis Services Using SAN Snapshots&lt;/a&gt; &lt;/u&gt; &lt;p&gt;&lt;u&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc280669.aspx"&gt;Scaling out an Analysis Services Solution&lt;/a&gt; &lt;/u&gt; &lt;p&gt;&lt;a href="http://technet2.microsoft.com/windowsserver/en/library/d92d338e-efdc-4e11-83a7-9af34c8bb5291033.mspx?mfr=true"&gt;Tune IIS&lt;/a&gt; &lt;p&gt;Tune Http.Sys:&lt;a href="http://download.microsoft.com/download/2/8/0/2800a518-7ac6-4aac-bd85-74d2c52e1ec6/tuning.doc"&gt;Windows 2003&lt;/a&gt; &lt;p&gt;Tune Http.Sys: &lt;a href="http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Perf-tun-srv.docx"&gt;Windows 2008&lt;/a&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Take care and good luck,&lt;/p&gt; &lt;p&gt;-Lukasz&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9132108" width="1" height="1"&gt;</description></item><item><title>SQL Server 2005 Notification Services Components Package RC1 Availability</title><link>http://blogs.msdn.com/lukaszp/archive/2008/09/09/sql-server-2005-notification-services-components-package-rc1-availability.aspx</link><pubDate>Wed, 10 Sep 2008 02:23:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8937912</guid><dc:creator>lukaszp</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/8937912.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=8937912</wfw:commentRss><description>&lt;p&gt;As part of this blog, I comment about Notification Services.&amp;nbsp; I wanted to provide you the following information about the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=614FFDF3-C608-4BD3-9061-AE37DCC81E2B" target="_blank"&gt;availability&lt;/a&gt; of a pre-release SQL Server 2005 Notification Services components package.&amp;nbsp; &lt;/p&gt; &lt;p&gt;If you have questions about SQL Server 2005 Notification Services, visit the &lt;a href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=97&amp;amp;SiteID=1"&gt;SQL Server Notification Services Forum on MSDN&lt;/a&gt;.&amp;nbsp; You can help improve the final version by submitting bugs to the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=34178"&gt;Connect Feedback Center&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Take care and good luck,&lt;/p&gt; &lt;p&gt;-Lukasz&lt;/p&gt; &lt;p&gt;----------------------&lt;/p&gt; &lt;p&gt;&lt;b&gt;SQL Server 2005 Notification Services Components Package Availability&lt;/b&gt; &lt;p&gt;The SQL Server 2005 Notification Services component package made available in the February 2007 release of the Microsoft Feature Pack for SQL Server 2005 is being updated to include Notification Services components, such as Notification Services server and client components, but will not include Management Studio integration. These updated components are designed to work with SQL Server 2005 and SQL Server 2008 databases.  &lt;p&gt;The SQL Server 2005 Notification Services components package update will be released in two phases: &lt;p&gt;&lt;b&gt;Phase 1: RC1 &lt;/b&gt; &lt;p&gt;The SQL Server 2005 Notification Services component package RC1 is &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=614FFDF3-C608-4BD3-9061-AE37DCC81E2B"&gt;available from the Microsoft Download Center&lt;/a&gt;. &lt;p&gt;This release is a pre-release version and is available only for testing. Product support is not available for this pre-release. &lt;p&gt;&lt;b&gt;Phase 2:&lt;/b&gt; &lt;b&gt;RTW&lt;/b&gt; &lt;p&gt;Release to Web (RTW) will be released as part of the Feature Pack update currently scheduled for release as part of SQL Server 2005 Service Pack 3 (SP3). SQL Server 2005 SP3 is targeted for calendar year 2008. The SQL Server 2005 Notification Services component package update will be subject to the SQL Server 2005 Product Support Lifecycle policies. &lt;p&gt;&lt;b&gt;SQL Server 2005 SP3 Notification Services&lt;/b&gt; &lt;p&gt;Starting with SQL Server 2005 SP3, the updated Notification Services will support using either SQL Server 2005 or SQL Server 2008 to host Notification Services Instance and Application databases. &lt;p&gt;&lt;b&gt;Changes introduced in the Updated Notification Services Components Package&lt;/b&gt; &lt;p&gt;We have not changed core functionality of Notification Services in the components package. We made limited interoperability fixes to enable Notification Services command line tools and service components to work correctly when using a SQL Server 2008 Database Engine to host the Notification Services Instance and Application databases. &lt;p&gt;No feature additions were made. &lt;p&gt;&lt;b&gt;Phase 1: RC1 - Deploying SQL Server 2005 Notification Services Components Package&lt;/b&gt; &lt;p&gt;The RC1 package can be installed on the same computer as an existing SQL Server 2005 Notification Services deployment. The existing deployment will automatically use the new service components installed by the RC1 package. Any Notification Services instances running on the computer should be stopped prior to installing the RC1package.  &lt;p&gt;Before installing the RC1 Package, you will need to install a SQL Server 2005 Cumulative Update to enable Notification Services to connect to a SQL Server 2008 database server. &lt;p&gt;For the purposes of testing the RC1 package, the following prerequisites are needed: &lt;p&gt;1) SQL Server 2005 Notification Services  &lt;p&gt;2) SQL Server 2005 SP2 &lt;p&gt;3) Cumulative update package 9 for SQL Server 2005 Service Pack 2, or later &lt;p&gt;If you do not have SQL Server 2005 installed and wish to test the RC1 Package, an option is to install the Evaluation Edition of SQL Server 2005 for the purposes of testing RC1. Please note that the Evaluation Edition does have a limited license term (please see the Evaluation Edition license terms for details). &lt;p&gt;&lt;b&gt;The Future of Notification Services&lt;/b&gt; &lt;p&gt;SQL Server 2005 is the last planned release of Notification Services. Microsoft believes “alerting” scenarios are valuable to our customers and we are looking at ways to include them in future product offerings. &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8937912" width="1" height="1"&gt;</description></item><item><title>SQL 2008 RTM - Where is Report Builder 2.0?</title><link>http://blogs.msdn.com/lukaszp/archive/2008/08/07/sql-2008-rtm-where-is-report-builder-2-0.aspx</link><pubDate>Fri, 08 Aug 2008 03:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8841986</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/8841986.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=8841986</wfw:commentRss><description>&lt;P&gt;&lt;A class="" href="http://blogs.msdn.com/robertbruckner/archive/2008/08/06/Sql-Server-2008-RTM.aspx" mce_href="http://blogs.msdn.com/robertbruckner/archive/2008/08/06/Sql-Server-2008-RTM.aspx"&gt;We've just released SQL Server 2008&lt;/A&gt;&amp;nbsp;(it feels great by the way!) and there have already been many e-mails asking us where to find Report Builder 2.0.&amp;nbsp; You can find an update on the release plan for Report Builder 2.0 on the main Reporting Services Blog:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/sqlrsteamblog/archive/2008/08/07/report-builder-2-0-release-plan-update.aspx" mce_href="http://blogs.msdn.com/sqlrsteamblog/archive/2008/08/07/report-builder-2-0-release-plan-update.aspx"&gt;&lt;FONT color=#800080&gt;http://blogs.msdn.com/sqlrsteamblog/archive/2008/08/07/report-builder-2-0-release-plan-update.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Take care and good luck,&lt;/P&gt;
&lt;P&gt;-Lukasz&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8841986" width="1" height="1"&gt;</description></item><item><title>Reporting Services HTTP 401 (Unauthorized) - Host Headers require your attention</title><link>http://blogs.msdn.com/lukaszp/archive/2008/07/18/reporting-services-http-401-unauthorized-host-headers-require-your-attention.aspx</link><pubDate>Fri, 18 Jul 2008 21:00:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8750535</guid><dc:creator>lukaszp</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/8750535.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=8750535</wfw:commentRss><description>&lt;p&gt;In a &lt;a href="http://blogs.msdn.com/lukaszp/archive/2008/03/26/solving-the-reporting-services-login-issue-in-the-february-ctp-of-sql-server-2008.aspx"&gt;previous post&lt;/a&gt;, I talked about issues with repeated login prompts when trying to access either Report Server or Report Manager using your browser.&amp;nbsp; &lt;p&gt;Recently, during an upgrade of our internal test server we identified a new type of HTTP 401 (Unauthorized) message.&amp;nbsp; This post provides a description of the problem and the solution.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;p&gt;&lt;b&gt;Symptoms:&lt;/b&gt; &lt;p&gt;When all of the following symptoms apply, it could be this issue: &lt;p&gt;A. When accessing Report Manager or Report Server you use a URL that looks like http(s)://&amp;lt;foo&amp;gt;/reports. The name &amp;lt;foo&amp;gt; is NOT the computer name of the computer on which Report Server and Report Manager are deployed.&amp;nbsp; However, DNS or the machine's hosts or lmhosts files (WINDOWS\system32\drivers\etc) are configured to send requests to &amp;lt;foo&amp;gt; back to the report server computer. &lt;p&gt;B. When accessing Report Server directly (e.g. http(s)://&amp;lt;foo&amp;gt;/reportserver) you get no problems - you can navigate the report server namespace and you can view all reports. &lt;p&gt;C. However when you access Report Manager (e.g. http(s)://&amp;lt;foo&amp;gt;/reports), you get what looks like the Report Manager UI but where you expect to see a list of reports, you get an error saying HTTP 401 (Unauthorized). If using SharePoint integrated mode, the error can appear on the SharePoint UI pages. &lt;p&gt;D. The ReportServerUrl element is specified in the rsreportserver.config file and is set to a URL that looks like http(s)://&amp;lt;foo&amp;gt;/reportserver. &lt;p&gt;The symptoms are most likely to occur when Reporting Services is deployed in a scale-out deployment or when Reporting Services is accessed using a user friendly name that does not match the machine name of the computer.  &lt;p&gt;&lt;b&gt;Solution:&lt;/b&gt; &lt;p&gt;&amp;lt;foo&amp;gt; is considered a "Host Header".&amp;nbsp; It is an alternate name for the computer on which SSRS is installed.&amp;nbsp; You will need to add the NetBIOS and Fully Qualified Domain Name (FQDN) for &amp;lt;foo&amp;gt; to the list of &lt;b&gt;BackConnectionHostNames&lt;/b&gt; stored in the Windows Registry.&amp;nbsp; Casing does not matter. Use the steps in &lt;b&gt;Method 2: Specify host names&lt;/b&gt; in &lt;a href="http://support.microsoft.com/kb/896861"&gt;KB 896861&lt;/a&gt;, with the following adjustment.&amp;nbsp;&amp;nbsp; Step 7 of the KB article says "Quit Registry Editor, and then restart the IISAdmin service."&amp;nbsp; Instead, just reboot the computer.&amp;nbsp;&amp;nbsp; This is the correct solution for security reasons that I'll explain later in this article.  &lt;p&gt;For example, if &amp;lt;foo&amp;gt; is a Windows machine name like “contoso”, then it likely also can be referenced in FQDN form as “contoso.domain.com”. You will need to add both representations to the list in &lt;b&gt;BackConnectionHostNames&lt;/b&gt;. &lt;p&gt;&lt;b&gt;Cause:&lt;/b&gt; &lt;p&gt;Report Server and Report Manager communicate using a network connection.&amp;nbsp;&amp;nbsp; When configured for a scale-out deployment of Reporting Services, typically a single virtual server name is given to the deployment and the underlying machine names are never used by end-users.&amp;nbsp;&amp;nbsp; The same can happen even for non-scale-out deployments but I would consider it less common.&amp;nbsp; For example, you might call the server &lt;a href="http://www.contoso.com"&gt;www.contoso.com&lt;/a&gt; or on the internal network simply "contoso".&amp;nbsp;&amp;nbsp;&amp;nbsp; These are called Host Headers.&amp;nbsp; We have only observed the issue in this post when using a Host Header; we have not seen it when using just the machine name.&amp;nbsp; &lt;p&gt;By default, Report Manager is configured for Windows authentication. In this mode, it impersonates the user making the request and uses that user's credentials to connect to the Report Server.&amp;nbsp; Because the network request is local, the authentication between RM &amp;amp; RS can succeed without running into a double hop authentication issue.&amp;nbsp; In the case described above, it fails mysteriously.&amp;nbsp; Let's see why...  &lt;p&gt;The exact authentication mode used by both RS and RM is defined in rsreportserver.config in the &amp;lt;AuthenticationTypes&amp;gt; element.&amp;nbsp; When &amp;lt;AuthenticationTypes&amp;gt; includes &amp;lt;RSWindowsNTLM/&amp;gt; then RM &amp;amp; RS can use NTLM authentication.&amp;nbsp;&amp;nbsp; NTLM is generally a destination agnostic authentication scheme.&amp;nbsp; What this means is that the client does not have mutual authentication and cannot be sure which machine it authenticated to.&amp;nbsp; &lt;p&gt;When you perform NTLM authentication, you can optionally specify an intended destination in the form of an SPN.&amp;nbsp;&amp;nbsp; This helps mitigate authentication reflection attacks. Not all clients (e.g. browsers) or APIs packages (e.g. .Net Framework) do this by default.&amp;nbsp; The specific change we observed is that the .Net Framework 3.5 SP1 now defaults to specifying the Host Name used in the request URL in an SPN in the NTLM authentication package.&amp;nbsp; So if you make a URL request to http://&amp;lt;foo&amp;gt;/reportserver then the SPN “HTTP/&amp;lt;foo&amp;gt;” is added to the authentication information.&amp;nbsp; This is good news from a security perspective, but has an unfortunate consequence. &lt;p&gt;&lt;em&gt;As an aside - slide 24 of &lt;a href="http://download.microsoft.com/download/f/4/a/f4a67fc8-c499-461d-a025-8155fb4f7a0f/Windows%20Passwords%20Master%201.5%20Handout%20-%20Jesper%20Johansson.ppt " target="_blank"&gt;Jesper Johansson’s PowerPoint slide deck (download.microsoft.com)&lt;/a&gt; on authentication shows how these reflection attacks work. &lt;/em&gt; &lt;p&gt;You might think that since the user accessing Report Manager accessed http://&amp;lt;foo&amp;gt;/reports and then the report manager accessed http://&amp;lt;foo&amp;gt;/reportserver, everything should just work.&amp;nbsp; However, Windows has a special case when you do NTLM authentication on the local computer (i.e. loop back connection) that affords protection against authentication reflection attacks. Part of the NTLM authentication process centers on a challenge issued by the destination computer and sent back to the client computer.&amp;nbsp;&amp;nbsp; Windows keeps track of the challenges it issues.&amp;nbsp; If Windows receives a challenge it itself generated Windows will fail the authentication unless the connection is a loop back connection.&amp;nbsp; &lt;p&gt;To determine whether the connection is a loop back connection, Windows reads the destination contained in the authentication information supplied by the client.&amp;nbsp; If the destination is not specified or maps to the local machine then Windows allows the authentication to proceed.&amp;nbsp;&amp;nbsp; In our failing case, &amp;lt;foo&amp;gt; is neither the machine name nor the loop back IP address nor the machine's IP address, so Windows fails the authentication requests.&amp;nbsp; This causes the requests between Report Manager and Report Server to fail with 401 (Unauthorized).&amp;nbsp; &lt;p&gt;To address the issue, we need to tell Windows that &amp;lt;foo&amp;gt; is actually an alternate name for the local computer.&amp;nbsp; The correct way to do that is to use the &lt;b&gt;BackConnectionHostNames&lt;/b&gt; registry entry as described in &lt;b&gt;Method 2: Specify host names&lt;/b&gt; in &lt;a href="http://support.microsoft.com/kb/896861"&gt;KB 896861&lt;/a&gt;.&amp;nbsp;&amp;nbsp; Solution &lt;b&gt;Method 1: Disable the loopback check &lt;/b&gt;will result in a less secure system, as it disables the protection against reflection attacks. It is better to constrain the set of alternate names to only those you expect the machine to actually use. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8750535" width="1" height="1"&gt;</description></item><item><title>SQL Server 2008 Reporting Services Scalability</title><link>http://blogs.msdn.com/lukaszp/archive/2008/07/14/sql-server-2008-reporting-services-scalability.aspx</link><pubDate>Mon, 14 Jul 2008 20:51:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8731831</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/8731831.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=8731831</wfw:commentRss><description>&lt;p&gt;Much has been said up to now about the scalability work the Reporting Services team has done in the SQL 2008 version.&amp;nbsp; However, until now, there were no numbers to back up the architecture discussions.&amp;nbsp; The &lt;a href="http://sqlcat.com/" target="_blank"&gt;SQL Server Customer Advisory Team (SQLCAT)&lt;/a&gt; just released a &lt;a href="http://sqlcat.com/technicalnotes/default.aspx" target="_blank"&gt;Technical Note&lt;/a&gt; titled &lt;a href="http://sqlcat.com/technicalnotes/archive/2008/07/09/scaling-up-reporting-services-2008-vs-reporting-services-2005-lessons-learned.aspx" target="_blank"&gt;Scaling Up Reporting Services 2008 vs. Reporting Services 2005: Lessons Learned&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;This is a must read for anyone looking to compare the two products.&amp;nbsp; It also shows that an investment, even now, in SQL 2005 Reporting Services provides a roadmap to higher scalability in the future.&amp;nbsp; Previously, I discussed an approach for &lt;a href="http://blogs.msdn.com/lukaszp/archive/2007/09/05/scale-testing-reporting-services.aspx"&gt;Scale Testing Reporting Services&lt;/a&gt; that is very similar to the approach used in the Technical Note.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Some key notes from the Technical Note:&lt;/p&gt; &lt;p&gt;1) "&lt;em&gt;Reporting Services 2008 was able to respond to 3–4 times the total number of users and their requests on the same hardware without HTTP 503 Service Is Unavailable errors compared with Reporting Services 2005, regardless of the type of renderer."&lt;/em&gt;&lt;/p&gt; &lt;p&gt;2)"&lt;em&gt;Our tests clearly show that the new memory management architecture of the report server enables Reporting Services 2008 to scale very well, particularly on the new four-processor, quad-core processors.&lt;/em&gt;"&lt;/p&gt; &lt;p&gt;The key take away from the Technical Note is that SQL 2008 Reporting Services can scale-up better than SQL 2005 Reporting Services.&amp;nbsp; This opens the door to hardware consolidation with maintained service quality.&amp;nbsp; In SQL 2005 Reporting Services, we provided guidance that scale-out should be pursued relatively quickly - after 4 CPU cores was reached. In contrast, SQL 2008 works quite well with 16 CPU cores.&amp;nbsp; We still recommend moving to a scale-out deployment topology for both the scalability and availability benefits that configuration offers.&amp;nbsp; However, each of the machines in the scale-out can have higher specifications that will translate to increased scalability.&lt;/p&gt; &lt;p&gt;At the back of the paper, in the Miscellaneous section, there is some advice that goes to show it pays to read all the way through, and I wanted to highlight:&lt;/p&gt; &lt;p&gt;3) "&lt;em&gt;Based on our tests, we believe that every Reporting Services 2008 installation or upgrade should pay close attention to the disk configuration of [the Report Server] databases."&lt;/em&gt;&lt;/p&gt; &lt;p&gt;It is important to understand that SSRS 2008 uses the Report Server database heavily.&amp;nbsp; Now that memory utilization on the Report Server computer has been alleviated as a core scalability bottleneck , the other predominant limiters of scalability - CPU and I/O - are coming to prominence.&amp;nbsp; On the I/O side, there are specific things to note:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Database performance is key to making Reporting Services scale.&amp;nbsp; Investing in a good I/O subsystem underneath your Report Server database will yield significant benefits.&lt;/li&gt; &lt;li&gt;When SSRS 2008 reacts to memory pressure, it uses the local disk on the Report Server computer to cache objects and consequently reduces memory footprint.&amp;nbsp; This will result in increased disk I/O relative to SQL 2005 Reporting Services.&amp;nbsp;&amp;nbsp; Administrators should start monitoring the I/O performance of their Report Server boxes and investing in faster locally attached storage when bottlenecks are identified.&lt;/li&gt; &lt;li&gt;Since the Report Server databases typically are located off box, administrators should monitor the network link between the Report Server and the Report Server databases to ensure there is sufficient bandwidth to efficiently handle the network I/O.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Take care and good luck,&lt;/p&gt; &lt;p&gt;-Lukasz&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8731831" width="1" height="1"&gt;</description></item><item><title>Solving the Reporting Services Login issue in the February CTP of SQL Server 2008</title><link>http://blogs.msdn.com/lukaszp/archive/2008/03/26/solving-the-reporting-services-login-issue-in-the-february-ctp-of-sql-server-2008.aspx</link><pubDate>Thu, 27 Mar 2008 07:44:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8338973</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/8338973.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=8338973</wfw:commentRss><description>&lt;p&gt;I’ve seen customers run into authentication issues using the &lt;a href="https://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=5395" target="_blank"&gt;SQL Server 2008 February CTP of Reporting Services&lt;/a&gt; (you should all give it a try!). This post provides solutions and a detailed discussion of the underlying causes. The material in this post is applicable to all SSRS deployments, beyond the scope of solving the specific issue.  &lt;p&gt;&lt;b&gt;Symptom:&lt;/b&gt; &lt;p&gt;A) When you access report server or report manager, you get a login prompt multiple times and eventually you get a blank screen. &lt;/p&gt; &lt;p&gt;B) When you try to publish reports/models from Business Intelligence Development studio, you get access denied errors.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Solutions:&lt;/b&gt; &lt;p&gt;1) Remove RSWindowsNegotiate and ensure RSWindowsNTLM is specified in the file rsreportserver.config &lt;p&gt;2) OR, change the report server service account to Network Service &lt;p&gt;3) OR, configure a specific hostheader for SSRS, configure your DNS server to understand that hostheader, and configure your domain controller to have an SPN for the hostheader and the report server service account.  &lt;p&gt;Clearly #1 is the easiest but not necessarily the right change.&amp;nbsp; The rest of this post attempts to explain the cause and the merits of each solution.  &lt;p&gt;&lt;b&gt;Cause:&lt;/b&gt; &lt;p&gt;In the cases I have seen, the problem is due to Kerberos authentication.&amp;nbsp; Kerberos is an authentication protocol that allows clients that create authentication tokens to associate a specific destination to that token.&amp;nbsp; In the failure case there is a mismatch between the destination specified in the token and the report server process configuration.&amp;nbsp; Due to this mismatch, the underlying Kerberos authentication scheme supported by Windows prevents report server from authenticating the user. &lt;p&gt;&lt;b&gt;So how does this apply to SSRS 2008?&lt;/b&gt; &lt;p&gt;By default in the February CTP, setup includes RSWindowsNegotiate in the AuthenticationTypes listed in the file rsreportserver.config.&amp;nbsp; Negotiate is an authentication type that specifies the server can either accept Kerberos or NTLM authentication tokens.&amp;nbsp; The client application decides what kind of token to pass to the server. &lt;p&gt;&lt;i&gt;Side note: in later builds we changed the setup behavior to add RSWindowsNegotiate only if network service is used in setup as the report server service account. &lt;/i&gt; &lt;p&gt;Internet Explorer (perhaps other browsers, too) uses Kerberos authentication if the server it connects to supports it.&amp;nbsp; In order to use Kerberos, IE (the client application) must specify the destination in the authentication token it creates. It does this by examining the URL and asking the Domain Controller for an SPN for the destination.&amp;nbsp; SPNs are Service Principal Names and are used to identify resources on the network.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;p&gt;There are a number of default SPNs created by the Windows ecosystem.&amp;nbsp; One of these is for the Network Service account for the HTTP/Host SPN.&amp;nbsp;&amp;nbsp; This is the SPN used by IE to authenticate to SSRS.&amp;nbsp; If SSRS is not running as the Network Service account the SPN may not resolve correctly and the Kerberos authentication will fail.  &lt;p&gt;The default SPN HTTP/Host for Network Service account applies to SSRS because in SSRS 2008 we use HTTP.SYS to listen for network traffic.&amp;nbsp; All services that use HTTP.SYS share this SPN by default, and they all can be subject to this problem if they support Kerberos or Negotiate authentication.  &lt;p&gt;If SSRS is running under the Network Service account, things just work.&amp;nbsp; However, if SSRS is running under a domain account, IE will include an SPN in the Kerberos authentication token that does not resolve to the SSRS service account.&amp;nbsp; This will cause continued failure to authentication, and thus the login prompt.  &lt;p&gt;NTLM is different than Kerberos - NTLM does not include a destination in the token and it will allow report server to successfully authenticate the user.&amp;nbsp;&amp;nbsp; Because Kerberos authentication specifies a destination in the tokens it uses, it is in some degrees more secure than NTLM.  &lt;p&gt;&lt;b&gt;So what should I do to fix it&lt;/b&gt;?  &lt;p&gt;Firstly, you need to determine how much benefit using the more secure Kerberos tokens are in your environment.&amp;nbsp; Generally, I would recommend that you use Kerberos authentication since having destination specific tokens is a good practice.&amp;nbsp; &lt;p&gt;Secondly, you need to determine if you are OK changing the SSRS service account to Network Service.&amp;nbsp; We recommend that you use a Domain Account for the SSRS service account - this helps to isolate SSRS from other processes running on the computer.&amp;nbsp; Thereby, it helps make the computer that hosts SSRS more secure.&amp;nbsp; &lt;p&gt;Clearly the best solution security wise is to configure a hostheader and have a specific SPN. However, it is also the hardest solution to deploy.&amp;nbsp; Most computer administrators do not have the ability/permission level to make the required DNS and Active Directory SPN changes. &lt;p&gt;Is there a clear winner here?&amp;nbsp; No - Unfortunately the first and second options achieve different objectives from a security perspective.&amp;nbsp; Option 3, though advised, will not commonly be used due to complexity of configuration. For our setup experience, we decided that we'll use Negotiate (Kerberos) if in setup you select Network Service and that we'll use NTLM if you select a domain account for the SSRS service account.&amp;nbsp;&amp;nbsp; This is a good compromise since it allows report server to work by default and be as secure as possible after installation.  &lt;p&gt;More sophisticated IT organizations should consider option 3 for their data center deployments.  &lt;p&gt;In the interest of completeness - you may encounter this issue when changing the service account through the configuration tool.&amp;nbsp;&amp;nbsp; At the time of writing, you will have to ensure the Authentication Types are correct based on the service account you're using.&amp;nbsp; &lt;p&gt;&lt;b&gt;Is this problem new in SQL 2008?&amp;nbsp; Could I have seen it in SQL 2005? &lt;/b&gt; &lt;p&gt;No - the problem is not new.&amp;nbsp; Yes - you could have seen it in SQL 2005.&amp;nbsp; The problem would manifest differently.&amp;nbsp;&amp;nbsp; In SSRS 2005, we set the Report Server application pool identity to Network Service.&amp;nbsp; The reason for this was the very same - otherwise there are authentication failures due to the SPN.&amp;nbsp;&amp;nbsp; You can try this for yourself by creating 2 application pools in IIS one with Network Service, the other with a Domain Account and trying to authenticate to each.&amp;nbsp; &lt;p&gt;Take care and good luck, &lt;p&gt;-Lukasz&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8338973" width="1" height="1"&gt;</description></item><item><title>Finding Reporting Services Content faster</title><link>http://blogs.msdn.com/lukaszp/archive/2008/03/18/finding-reporting-services-content-faster.aspx</link><pubDate>Wed, 19 Mar 2008 04:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8324421</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/8324421.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=8324421</wfw:commentRss><description>&lt;P&gt;Hi everyone - I've been away from my blog for a little while.&amp;nbsp; However, now again I have some time to start blogging again.&lt;/P&gt;
&lt;P&gt;I get tons of customer questions over the course of a week. I’d like to share with you how I make my life easier by using Internet Explorer’s built-in search box to help me find things faster.&amp;nbsp;&amp;nbsp; Other browsers provide similar capabilities, so you should be able to get it working there as well. &lt;/P&gt;
&lt;P&gt;The first issue I'd like to address is an issue that has come up a number of times in a number of ways.&amp;nbsp;&amp;nbsp; I first addressed it &lt;A href="http://blogs.msdn.com/lukaszp/archive/2006/08/08/getting-started-with-reporting-services.aspx" target=_blank mce_href="http://blogs.msdn.com/lukaszp/archive/2006/08/08/getting-started-with-reporting-services.aspx"&gt;here&lt;/A&gt;.&amp;nbsp; But since then SQL Server 2008 has made a lot of progress and I find I need to find the latest documentation, quickly.&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;P&gt;&lt;STRONG&gt;How to Add a SSRS Search Provider to Internet Explorer 7: &lt;/STRONG&gt;
&lt;P&gt;1. Find the Search box in the upper right corner of the IE window. 
&lt;P&gt;2. Use the down arrow to open the provider selector menu. 
&lt;P&gt;3.&lt;STRONG&gt; &lt;/STRONG&gt;Click &lt;B&gt;Find More Providers…&lt;/B&gt; 
&lt;P&gt;4. Find the Create Your Own box (highlighted in Yellow/Mustard color) 
&lt;P&gt;5. In the text box labeled &lt;B&gt;Paste the URL of the Search results page URL&lt;/B&gt;, paste the following: 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;FONT color=#800080&gt;&lt;A class="" href="http://search.live.com/results.aspx?q=TEST+%22reporting+services%22+site%3Amsdn2.microsoft.com" target=_blank mce_href="http://search.live.com/results.aspx?q=TEST+%22reporting+services%22+site%3Amsdn2.microsoft.com "&gt;http://search.live.com/results.aspx?q=TEST+%22reporting+services%22+site%3Amsdn2.microsoft.com &lt;/A&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/I&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;6. In the text box labeled &lt;B&gt;Specify a name for the search provider Name&lt;/B&gt;, paste the following: 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;I&gt;RS on MSDN2&lt;/I&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;7. Click Install. 
&lt;P&gt;8. Now type a search term into the search box (choose your favorite SSRS feature name), use the down arrow and select RS on MSDN2 from the selector menu.&amp;nbsp; You will see the results of your search.&amp;nbsp; 
&lt;P&gt;You can use additional search terms to find documentation that is specific to a version: 
&lt;P&gt;Find only SQL Server 2008 documentation 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A class="" href='http://search.live.com/results.aspx?q=TEST+100+"reporting services"+site:msdn2.microsoft.com' target=_blank mce_href='http://search.live.com/results.aspx?q=TEST+100+"reporting services"+site:msdn2.microsoft.com'&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT face=Calibri size=3&gt;http://search.live.com/results.aspx?q=TEST+&lt;B&gt;100&lt;/B&gt;+"reporting&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt; services"&lt;SPAN style="COLOR: #1f497d"&gt;+&lt;/SPAN&gt;site:msdn2.microsoft.com&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Find only SQL Server 2005 documentation 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;A class="" href='http://search.live.com/results.aspx?q=TEST+90+"reporting services"+site:msdn2.microsoft.com' target=_blank mce_href='http://search.live.com/results.aspx?q=TEST+90+"reporting services"+site:msdn2.microsoft.com'&gt;&lt;FONT face=Calibri size=3&gt;http://search.live.com/results.aspx?q=TEST+&lt;B&gt;90&lt;/B&gt;+"reporting&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; services"+site:msdn2.microsoft.com&lt;/FONT&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Find only SQL Server 2000 documentation 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A class="" href='http://search.live.com/results.aspx?q=TEST+80+"reporting services"+site:msdn2.microsoft.com' target=_blank mce_href='http://search.live.com/results.aspx?q=TEST+80+"reporting services"+site:msdn2.microsoft.com'&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;http://search.live.com/results.aspx?q=TEST+&lt;B&gt;80&lt;/B&gt;+"reporting&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt; services"&lt;SPAN style="COLOR: #1f497d"&gt;+&lt;/SPAN&gt;site:msdn2.microsoft.com&lt;/SPAN&gt;&lt;/A&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Alternately, you can just type your search term followed by 100, 90 or 80 in the Search Provider text box.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Clearly this doesn't apply only to SSRS, but that's where I find it most useful :-).&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Take care and good luck,&lt;/P&gt;
&lt;P&gt;-Lukasz&lt;/P&gt;
&lt;P&gt;Update 1: I corrected the search terms to be actual URLs.&amp;nbsp; It should work better for people.&amp;nbsp; Note, I'm using &lt;A href="http://www.live.com/"&gt;www.live.com&lt;/A&gt; as my search provider.&amp;nbsp; You can do something similar with other search engines.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8324421" width="1" height="1"&gt;</description></item><item><title>Keeping your report servers awake (or No more waiting for report server to startup)</title><link>http://blogs.msdn.com/lukaszp/archive/2007/09/18/keeping-your-report-servers-awake-or-no-more-waiting-for-report-server-to-startup.aspx</link><pubDate>Wed, 19 Sep 2007 00:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4986483</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/4986483.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=4986483</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Reporting Services in SQL 2005 is hosted in IIS.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;IIS has a performance optimization built-in that you cannot disable (AFAIK), which shuts down an application once there is a period of 20 minutes of inactivity.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is governed by the Idle Timeout IIS Metabase property.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You can read about this Idle Timeout here:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;A href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/b39a8ab9-7331-4bad-a89a-0210aadbd4a7.mspx?mfr=true"&gt;&lt;FONT face=Calibri size=3&gt;http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/b39a8ab9-7331-4bad-a89a-0210aadbd4a7.mspx?mfr=true&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You can read about how to set the Idle Timeout here:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;A href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/83b35271-c93c-49f4-b923-7fdca6fae1cf.mspx?mfr=true"&gt;&lt;FONT face=Calibri size=3&gt;http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/83b35271-c93c-49f4-b923-7fdca6fae1cf.mspx?mfr=true&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The behavior of the Idle Timeout causes the user’s perception that Report Server is constantly falling asleep.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;In fact, the same behavior applies to any web application hosted in IIS.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Once IIS has shut down the report server, it can take anywhere from 5 to 20 seconds to respond to the next request.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This value ranges based on the performance of the server hosting IIS &amp;amp; RS.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This time is taken up by IIS loading ASP.Net, ASP.Net in turn loading the report server DLLs, and finally report server starting up.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;All of this takes some time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Naturally, to a user it looks like report server is dozing off - again. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;To address this issue you need to ping the report server periodically to ensure it is never inactive.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;To ping the server, make a Web Services (SOAP) request to the report server virtual directory.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;You could do the same with Report Manager; though RM load time is quite fast if the report server is already running.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can do this using your favorite scheduling technology like the Windows Task Scheduler, a SQL Agent job that runs an extended stored procedure, etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;But since we’re talking about Reporting Services, I thought I’d create a sample to show you how to use the solve this problem using Subscriptions. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I posted a report that lists the items in the report server namespace.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To get the report:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;First&lt;/B&gt; add yourself to the &lt;B style="mso-bidi-font-weight: normal"&gt;lukaszpblog&lt;/B&gt; group on &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://groups.msn.com/lukaszpblog"&gt;&lt;FONT face=Calibri size=3&gt;http://groups.msn.com/lukaszpblog&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Then you can get the report here:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;ListChildren Report:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;A href="http://www.msnusers.com/lukaszpblog/Documents/Files/ListChildren.rdl"&gt;&lt;FONT face=Calibri size=3&gt;http://www.msnusers.com/lukaszpblog/Documents/Files/ListChildren.rdl&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Take the report and publish it to your report server.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Viewing it will show you a very basic listing of content at the root of the report server namespace.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Edit the properties for the report and set the data source credentials the report will run as.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The credentials will either need to be stored or none.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In order to choose none, you’ll need to set the unattended execution account.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The account you choose should have the minimum level of privilege (I’d suggest Browser role) on the report server. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Test that the report executes to make sure everything works.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Now you can create a subscription to this report.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Use the parameters in the subscription to ensure the report executes against the report server you want it keep alive.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you’re deployed in a scale-out deployment you should create one subscription for each node in the scale-out and set the parameters explicitly to access the machine directly (not through the virtual server name or NLB).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Set subscription to execute on a schedule and set that schedule to occur every 9 minutes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I like this frequency since if something were to go wrong, like a networking issue, you the subscription will run twice within the span of the 20 minute IIS application shutdown window.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;With this solution, the report server will keep itself alive by continually processing the subscription which pings the web service and therefore IIS will never unload it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Problem solved.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Take care and good luck,&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;-Lukasz&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4986483" width="1" height="1"&gt;</description></item><item><title>Scale Testing Reporting Services</title><link>http://blogs.msdn.com/lukaszp/archive/2007/09/05/scale-testing-reporting-services.aspx</link><pubDate>Wed, 05 Sep 2007 21:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4768529</guid><dc:creator>lukaszp</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/4768529.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=4768529</wfw:commentRss><description>&lt;P&gt;I wanted to provide a quick note on how to scale test Reporting Services.&amp;nbsp; Partially I'm posting this so I don't lose the link :-).&lt;/P&gt;
&lt;P&gt;Often we are asked how best to scale test Reporting Services and what scale numbers to expect coming from a particular configuration.&amp;nbsp; We always hesitate to promise specific numbers because so much depends on your usage patterns, your reports, the size of your data, and your architecture.&amp;nbsp; To say that N users will always be supported by X hardware is just too much of a simplification.&amp;nbsp;&amp;nbsp; Therefore the guidance we give is based on patterns we have seen in our testing lab.&amp;nbsp; You can see the guidance we gave for SQL Server 2005 Reporting Services here:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Times New Roman" color=#1f497d size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;SPAN style="COLOR: #1f497d; mso-bidi-font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;&lt;A href="http://www.microsoft.com/technet/prodtechnol/sql/2005/pspsqlrs.mspx" mce_href="http://www.microsoft.com/technet/prodtechnol/sql/2005/pspsqlrs.mspx"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;http://www.microsoft.com/technet/prodtechnol/sql/2005/pspsqlrs.mspx&lt;/FONT&gt;&lt;/A&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;You should be aware that&amp;nbsp;SQL Server 2008 CTPs (Community Technology Preview) are becoming available as 2007 continues.&amp;nbsp; To date, I believe we have provided 3 public SQL Server 2008 CTPs.&amp;nbsp; You can find the latest one here:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=5395"&gt;https://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=5395&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;As always with a new version, users want to know how well it scales relative to the old version. Bear in mind that these CTPs are kind of like Alpha or Beta releases of the product - they're not finished yet and performance/scale characteristics will change as we get closer to release.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, if you're thinking of adopting the next version, now is the time to start planning your testing strategy.&amp;nbsp;&amp;nbsp;Specifically, you can start by&amp;nbsp;building your test infrastructure to do scale testing against the existing product and reuse as new CTPs come available.&amp;nbsp;&amp;nbsp;The leg work to understand which reports are key to test and which scenarios you should be including is independent of your actual testing timeframes and having it done and out of the way can greatly simplify your acceptance testing later.&amp;nbsp; In this regard, you may&amp;nbsp;find the following article very interesting&amp;nbsp;(I did): &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Using Visual Studio 2005 to Perform Load Testing on a SQL Server&amp;nbsp;2005 Reporting Services Report Server (&lt;A href="http://technet.microsoft.com/en-us/library/aa964139.aspx"&gt;http://technet.microsoft.com/en-us/library/aa964139.aspx&lt;/A&gt;)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Whether you go with this approach or another solution, you will&amp;nbsp;be well served to start planning this testing well in advance of having the final product in place.&amp;nbsp; Also, we have not released any guidance on perf/scale for SQL Server 2008 Reporting Services; this will come in due course as we get closer to release. &lt;/P&gt;
&lt;P&gt;Take care and good luck,&lt;/P&gt;
&lt;P&gt;-Lukasz&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4768529" width="1" height="1"&gt;</description></item><item><title>Report Viewer Control - Reset() method</title><link>http://blogs.msdn.com/lukaszp/archive/2007/08/24/report-viewer-control-reset-method.aspx</link><pubDate>Fri, 24 Aug 2007 20:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4545375</guid><dc:creator>lukaszp</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/lukaszp/comments/4545375.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lukaszp/commentrss.aspx?PostID=4545375</wfw:commentRss><description>&lt;P&gt;This post is about a&amp;nbsp;consequence of the&amp;nbsp;calling ReportViewer.Reset() method related to revaluating parameter&amp;nbsp;default values.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Report Viewer controls are a great way to integrate reports into your applications.&amp;nbsp; You can see some examples here: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.gotreportviewer.com/"&gt;http://www.gotreportviewer.com&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;One aspect of&amp;nbsp;using the controls that may not be easily found/understood is the value of the Reset() method.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/microsoft.reporting.winforms.reportviewer.reset(vs.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/microsoft.reporting.winforms.reportviewer.reset(vs.80).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.reportviewer.reset(VS.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.reportviewer.reset(VS.80).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The description of the method&amp;nbsp;obsurely references&amp;nbsp;to&amp;nbsp;resetting the control to the 'default state'.&amp;nbsp; This has an implication in the case of parameters - when you reset the control, you create a new 'session' if connected to the report server.&amp;nbsp; This causes the report to be reexecuted when you run it.&amp;nbsp; It also means that the parameter values will be reset to their initial defaults.&amp;nbsp; Once done, you can again customize the parameter values in your code.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Take care and good luck,&lt;/P&gt;
&lt;P&gt;-Lukasz&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4545375" width="1" height="1"&gt;</description></item></channel></rss>