Wednesday 19 September 2012

SQL 2008 R2 Reporting Services won't restart after SP2

Seems a few people have encountered a problem with SSRS 2008 R2 after installing SP2.

In my case the SSRS instance would not restart, so I checked Event Viewer.
There were no messages at all under the Application log, and all the system log stated was:

Timeout (30000 milliseconds) waiting for the SQL Server Reporting Services (Grumpy) service to connect.

I tried changing the account that SSRS was running under, but it would still not restart, and I was considering un-installing SP2 (KB 948109).

A bit more investigating though, and there didn't seem to actually be any error from SSRS, so I tried changing the service startup timeout value to 60 seconds.

This time SSRS started successfully (albeit slowly).  It did require me to backup the encryption key file, but I think that is more likely to have been related to playing around with the account it was running under rather than the timeout change.

The post I found that details changing the timeout is as follows:

  • To increase the timeout value in the registry, follow these steps:
    1. Start Registry Editor (Regedit.exe).
    2. To change the value data for the ServicesPipeTimeout DWORD value to 60000 in the Control key, follow these steps:
      1. Locate and then click the following registry key:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
      2. Click the Control subkey
      3. Right-click the ServicesPipeTimeout DWORD value, and then click Modify.
      4. Click Decimal.
      5. Type 60000, and then click OK.
    3. If the ServicesPipeTimeout value is not available, add the new DWORD value, and then set its value data to 60000 in the Control key. To do so, follow these steps:
      1. Locate and then click the following registry key:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
      2. Click the Control subkey.
      3. On the Edit menu, point to New, and then click DWORD Value.
      4. Type ServicesPipeTimeout, and then press ENTER.
      5. Right-click the ServicesPipeTimeout DWORD value, and then click Modify.
      6. Click Decimal.
      7. Type a value of 60000, and then click OK.

        The value is 60000 milliseconds and is equivalent to 60 seconds or to one minute.
      Note This change does not take effect until the computer is restarted