Product DocsMenu

Configuring the Throttling Policy for the Microsoft Exchange Account

In Exchange 2010, Microsoft introduced the throttling policy feature that is also present in Exchange 2013 and Online. With this feature, Exchange tracks the resources that each user consumes and enforces connection bandwidth limits, as necessary.

The throttling restrictions however negatively impacts the performance of the Coveo crawler that inevitably increases the load on the Microsoft Exchange Server. The default throttling policy assigned to Exchange users is too restrictive for crawling operations, causing numerous errors and problems that drastically decrease performance and possibly prevent access to some content.

The following tables describe the effects of the Microsoft Exchange throttling parameters on the crawling depending on the Microsoft Exchange version.

  • Exchange 2013

    Throttling parameter Effect
    EWSMaxConcurrency EwsMaxBurst When the value of this parameter is too low, you can get an error/warnings similar to:
    [url] could not be accessed by Web Services: The server cannot service this request right now. Try again later.
    EwsRechargeRate
    Defines the rate at which an EWS user budget is recharged (budget grows by) during the budget time. This value is related to the EwsMaxBurst parameter.
    EwsCutoffBalance

    Defines the resource consumption limits for EWS user before that user is completely blocked from performing operations on a specific component. When this situation occurs, you can get an error/warnings similar to:

    [url] generated this error: The operation has timed out, WebException status: Timeout.

    EWSFindCountLimit

    When the value of this parameter is too low, you can get error/warnings similar to:

    You have exceeded the maximum number of objects that can be returned for the find operation. Use paging to reduce the result size and try your request again.

    EWSMaxSubscriptions

    This parameter affects the callback service, which prevents it from getting as many subscriptions as it needs. The Subscribe operation fails with an error status, the ErrorExceededSubscriptionCount response code, and the message: You have exceeded the available subscriptions for your account. Remove unnecessary subscriptions and try your request again.
  • Exchange 2010

    Throttling parameter Effect
    EWSMaxConcurrency
    EWSPercentTimeInAD
    When the value of this parameter is too low, you can get an error/warnings similar to:
    [url] could not be accessed by Web Services: The server cannot service this request right now. Try again later.
    EWSPercentTimeInCAS
    EWSPercentTimeInMailboxRPC
    When the value of this parameter is too low, you can get an error/warnings similar to:
    [url] generated this error: The operation has timed out, WebException status : Timeout
    EWSFindCountLimit When the value of this parameter is too low, you can get error/warnings similar to:
    You have exceeded the maximum number of objects that can be returned for the find operation. Use paging to reduce the result size and try your request again.

    EWSMaxSubscriptions

    This parameter affects the callback service, which prevents it from getting as many subscriptions as it needs. The Subscribe operation fails with an error status, the ErrorExceededSubscriptionCount response code, and the message: You have exceeded the available subscriptions for your account. Remove unnecessary subscriptions and try your request again.

Note: For more information on the following aspects refer to the corresponding Microsoft document:

You need to configure the throttling policy to grant unlimited access to the Exchange Web Services for the user that the connector will use to crawl the Microsoft Exchange content.

To configure the throttling policy for the Microsoft Exchange account

  1. Using an administrator account, connect to your Microsoft Exchange Server.

  2. Open the Exchange Management Shell, and then:

    1. Type the following command to create a new throttling policy called CoveoCrawlingPolicy:

      • For Exchange 2013:

        New-ThrottlingPolicy -Name CoveoCrawlingPolicy -EWSMaxConcurrency Unlimited -EWSMaxBurst Unlimited -EWSRechargeRate Unlimited -EWSCutoffBalance Unlimited -EWSMaxSubscriptions Unlimited

        Note: For the online part of an Exchange 2013 hybrid deployment and an Exchange Online deployment, the throttling policy cannot be configured. The Coveo connector will be slowed down but manages the throttling related errors.

      • For Exchange 2010:

        New-ThrottlingPolicy -Name CoveoCrawlingPolicy -EWSMaxConcurrency $null -EWSPercentTimeInAD $null -EWSFindCountLimit $null -EWSPercentTimeInMailboxRPC $null -EWSFastSearchTimeoutInSeconds $null -EWSMaxSubscriptions $null -EWSPercentTimeInCAS $null  
    2. Type the following command to retrieve this new throttling policy and assign it to a variable:

      $b = Get-ThrottlingPolicy CoveoCrawlingPolicy

    3. Type the following command to assign the throttling policy to the coveoUser:

      Set-Mailbox -Identity coveoUser -ThrottlingPolicy $b

      where you replace coveoUser by the username that you selected to crawl the Microsoft Exchange content.

      Note: The Coveo user must have a mailbox.

What's Next?

When you want to index the content of Exchange 2010 public folders, ensure that your Exchange server is correctly configured to prevent public folder crawling issues (see Preventing Microsoft Exchange Public Folder Crawling Issues).

Otherwise you are ready to configure a CES user identity (see Adding a User Identity).

Last update: June 21, 2017