Optimizing timeouts in Arnica Web Platform applications

October 30, 2017 by Igor Lozhkin
Timeouts in Arnica Web Platform applications depend on multiple factors, and may be controlled at various technology levels as well as in program code.

Below is a summary of the typical timeout reasons and recommendations on how to manage them:

  • HTTP connection timeout is managed by IIS per web site. Typical value is 120 seconds, This value may be increased to accommodate longer running requests if necessary.  However, for site stability, this value should be kept to minimal or close to its default value.
  • .NET execution timeout is managed via web.config. Default value of 110 sec is enough for most applications, however should be increased for longer running requests.
  • IIS application pool timeouts - this is controlled by several application pool settings such as recycling interval, recycling times and limits, and others. But it is actually the Shutdown Time Limit, which kills the application pool process. This property has a default value of 90 seconds and should be adjusted accordingly to accommodate longer running processes. 
  • configuration.ini - section aaServer - key QueryTimeout. This key controls SQL query timeout, which has a maximum managed 600 seconds per query.  The default value 0 means that query could run indefinitely. 
  • configuration.ini - section aaServer - key WebRequestTimeout. This key controls URI resolve timeout, connect timeout, request send timeout and response receive timeout. The default for this key is 60 seconds for each component of the web request.

Timeout control should be applied to the specific technology layer to ensure stable operation of web application. If unsure what value to use, stay with default values or experiment with smaller values to release resources faster, until requirements suggest increasing a specific timeout value.