Thanks to my colleague Trevor Turner for compiling the various places in Project Server and associated technologies that timeout values can be set. This came about to resolve problems in the Resource Substitution Wizard – but is helpful information for other slow scenarios too – particularly when large datasets are involved. As Trevor points out – you should carry out other mitigations such as good use of categories, and also ensure your SQL databases have up to date statistics and fresh indexes. Much better to make things run faster than just allowing longer waits for slow processing!
Whenever something fails in a very specific amount of time – 30 seconds, 1 minute, 1 hour – I always suspect some sort of timeout may be involved.
Resource Substitution Wizard and Timeout Settings
In certain circumstances where the Resource Substitution Wizard has to deal with a large amount of data the default settings for some timeout values are not large enough. This can either cause errors to be returned to the user or cause unexpected data to be retrieved when running the wizard.
In order to resolve the specific timeout errors we have to ensure that the appropriate timeout values are set in the following four locations.
- The Project Server Published database
- The HKCU hive of the Windows registry
- The website timeout in IIS
- The ASP.NET timeout in IIS
NOTE: Before making these changes, however, it may be more appropriate to try to mitigate any timeout errors by controlling which projects the user can see by making use of Categories (in Project Web Access). Reducing the number of projects a user has access to in this way will reduce the length of time taken to run the wizard and, therefore, reduce the need to increase the aforementioned timeout values.
The following values/screenshots are what I have set on my system and which allow the Resource Substitution Wizard to successfully complete on a large customer dataset in around 8 minutes. Values should be modified at your own discretion.
These timeout values may need to be increased further in different environments as the system parameters will, obviously, be different.
All tests were performed using Project Server 2007 with the June CU installed for WSS, Project Server and Project Professional.
It must also be noted that increasing timeout values can cause the system to run less efficiently and effectively, particularly those settings for IIS.
1. The Project Server database
In the Project Server Published database the setting in the MSP_WEB_ADMIN table for WADMIN_CORE_SQL_TIMEOUT should be increased. This value is in seconds.
This value can also be modified by making use of the PSI. Please see the following reference;
2. The HKCU hive of the Windows registry
The following registry value should be added to the local user’s registry.
Name : Timeout
Type : DWORD
This setting controls the SOAP Toolkit timeout value on the client.
The default value is 60000, and it is ranked in milliseconds, putting the default value at one minute.
If this value is not high enough you will likely receive the following error, along with a related entry in the Application Event Log relating to MSSOAP.
3. The website timeout in IIS
In Internet Information Services (IIS) Manager, the “Connection timeout:” setting should be increased for the Project Server Web Site.
4. The ASP.NET timeout in IIS
In Internet Information Services (IIS) Manager, select the ASP.NET tab and press the “Edit Configuration” button.
Select the Application tab and set the “Request execution timeout (seconds):” value for
the Project Server Web Site.