Performance Problems

Learn to troubleshoot performance problems.

CRM.pad Server Request Timeout

Each CRM.pad server request is subject to two timeouts. The lower value determines the maximum execution time:

  1. The server's ASP.NET timeout after which the server request is canceled (default = 90 seconds). You can increase this value in the web.Config file: <!-- Increase script timeout to five minutes --> <httpRuntime executionTimeout="300" ... other configuration attributes .../>
  2. The default client request timeout of the CRM.pad is 60 seconds (i.e. 60 seconds, CRMpad assumes that the server does not respond). You can increase this value with the ClientRequestTimeout Web Configuration parameter, see Web Configuration Parameters and Layouts.
    Note: This setting is available for CRM.pad version 1.3.1 and higher in iOS6.
  3. For a thin connection (e.g. GSM) the timeout hardly ever occurs. A timeout occurs only if time runs out before the first response package is transferred. Still, a full synchronization on a thin connection probably takes a long time.
Note: Do not set the timeout without limits (although possible) as the server timeout restricts the server’s workload and the client timeout is important for usability.

Asynchronous Server Requests

The ClientRequestTimeout Web Configuration parameter defines the default client timeout, see ClientRequestTimeout. This timeout is also applied to a full synchronizations. It is often set to several minutes to ensure, that a full synchronization can be carried out.

This timeout also defines the time span until a "Server not available" error is generated if the server does not respond to a request.

If the user connects to the server using a VPN, the scenario that a network is available but a network connection is not established hardly occurs, therefore, a long timeout interval is rather annoying.

You can define that requests are handled asynchronously. Define a timeout for the server and a retry interval. If the request has not finished processing within the server timeout, the server informs the client about this pending request. The server checks after the retry interval whether the request was processed. If the request is still pending, the server re-checks regularly until the process has finished.

To enable asynchronous server requests, set the following Web Configuration parameters:

Note: If you set System.AsynchRequestWaitTime, you can assign the default value (60 seconds) or even a smaller value to the ClientRequestTimeout parameter. All synchronous server requests (including the synchronous part of asynchronous server requests) are carried out within this time span.