title: How to prevent proxy timeouts with SQL Server Reporting Services
body: <p>We have a system running Windows Server 2008R2 x64 and SQL Server 2008R2 x64 with SSRS installed/configured.  This is a shared reporting server used by a large number of people, with some fairly large inefficient databases (400-500gb of data ish), and these users use the system to generate ad-hoc reports based of a reporting model that sits on top of the aforementioned databases.  Note that the users are using NTLM to logon and identify for running reports.</p>
  
  <p>Most reports are quick, but if you are running a report for 1 or 2 years worth of data, they can take a while to return (5minutes ish).  This is fine for most users, however some of the users are stuck behind a proxy, which has a connection timeout set at 2minutes.  As SSRS 2008R2 does not seem to send back a "keep-alive" signal (confirmed via wireshark), when running one of these long reports the proxy server thinks the connection has died, and as such it just gives up and kills the connection.  This gives the user a 401 or 503 error and obviously cancels the report (the incorrect error is a known bug in SSRS which Microsoft refuse to fix).</p>
  
  <p>We're getting a lot of flak from the user's about this, even though it's not really our issue..so I am looking for a creative solution.</p>
  
  <p>So far I have come up with:</p>
  
  <p>1) Discovering some as yet unknown setting for SSRS that can make it keep the connection alive.<br />
  2) installing our own proxy in between the users and our reports server, which WILL send a keep-alive back (not sure this will work and it's a bit hacky, just thinking creatively!)<br />
  3) re-writing our reports databases to be more efficient (yes this is the best solution, but also incredibly expensive)<br />
  4) ask the experts :) :)<br /></p>
  
  <p>We have a call booked in with Microsoft Support to see if they can help - but can any experts on Stack help out? I appreciate that this may be a better question for server fault (and I may post it there) but it's a development question too really :)</p>
  
  <p>Thanks!</p>