Extending FIM Timeouts

When building out your deployment there may be cases where you want to extend the default timeouts used in the system.  A key scenario of this might be if you create a separate Administrators portal for your FIM Admins.  This could be used for running large reporting queries or making configuration changes like adding\removing large sets.

If you find that the operation you are attempting to complete takes more than 60s then to resolve this you will need to extend the various timeouts in the system.  Below is a breakdown of the various timeouts that you can configure in the system.

Configuration File Locations

  1. Sync - %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Synchronization Service\Bin\miisserver.exe.config
  2. Web Service - %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Service\Microsoft.ResourceManagement.Service.exe.config
  3. Password Client - %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Password Reset Client Service\PwdMgmtProxy.exe.config
  4. Portal - C:\inetpub\wwwroot\wss\VirtualDirectories\80\web.config

Timeout Attributes

  • dataReadTimeoutInSeconds – The read timeout used in SQL connections by the Web Service
  • dataWriteTimoutInSeconds – The write timeout used in SQL connections by the Web Service
  • timeoutInMilliseconds – The timeout used by our Web Service client when communicating witghg the Web Service

Steps

  1. Open the configuration file (see above for configuration file locations)
  2. Extend the SQL timeouts – This only applies to the Web Service configuration file
    • <resourceManagementService externalHostName="MySERVER" dataReadTimeoutInSeconds="300" dataWriteTimeoutInSeconds="300" />
  3. Extend the Client timeouts – This applies to the Portal. Password Client, & Sync Client
    • <resourceManagementClient resourceManagementServiceBaseAddress="MySERVER" timeoutInMilliseconds="300000" />
  4. Restart the service – Net stop & Net Start the service for each server that you modified the configuration for (FIMService, FIMSynchronizationService, & W3SVC)

Note: These timeouts can be different on different client & webservers.  So for instance in my previous post I may only want to extend the timeout for my Admin Portal which Admins & Sync use.  Then I would only modify it on FIMAdminPortal.contoso.com

Bonus: If you find yourself extending timeouts significantly you may find that the UI will still timeout, but your operation will still be performed.  In this case there is a timeout from ASP.Net which is causing the UI to timeout.  This is not required, but will prevent the UI from displaying an error.

  1. Open your web.config
  2. Locate the httpRuntime node
  3. Add the executionTimeout attribute (Default is 110 seconds)
    • <httpRuntime maxRequestLength="51200" executionTimeout="300" />