By default, Microsoft® Exchange 2010 and newer versions use client throttling policies to maintain a consistent performance profile for all users by tracking the usage of each Microsoft Exchange user and can enforce usage and bandwidth limits as necessary.
1. Office 365 (Exchange Online) does not allow customers to modify EWS throttling. For additional information, see Exchange Online Throttling and Limits FAQ. If sync service logs show the Exchange service was not responding, Riva made excessive attempts to connect and sync users. Recommended corrective actions include:
-
For Riva On-Premise and Riva Cloud: Disable the sync policy for up to four hours to allow the EWS to stop receiving sync requests that trigger the EWS throttling policy. See How to disable a Riva On-Premise sync policy or How to disable a Riva Cloud sync policy.
-
For Riva On-Premise and Riva Cloud: Increase the sync interval (time between sync polls) to at least 15 minutes between sync cycles. See How to increase the sync cycle interval for Riva On-Premise or How to increase the sync cycle interval for Riva Cloud.
-
For Riva On-Premise: Reduce the number of concurrent user execution threads to no more than one or two users.
When using "Delegate Authentication", because the Riva Sync Service user synchronizes data between Exchange and the CRM on behalf of all users, Exchange interprets the requests as being above normal and applies the EWS throttling policy. Depending on your environment and the number of objects and users being synchronized by Riva, the EWS throttling policy can affect Riva's ability to sync data in a timely manner. For environments that require "Delegate Authentication", we recommend turning off client throttling for the AD/Exchange user that will be used by Riva to communicate with Exchange. Riva has built-in configurations that can be used to throttle the application itself internally.
For EWS connections on Exchange 2010 SP1 or newer, when using "Application Impersonation", the throttling is done on a per-mailbox target, not based on the "connection user" used by Riva to authenticate to Exchange. For these environments, Exchange throttling errors should be monitored during deployment; however, disabling throttling is not recommended.
The following resources provide more information about Exchange throttling policies:
- EWS throttling in Exchange;
- Throttling policy associations in Exchange 2010 SP1;
- Cmdlets associated with this Knowledge Base article:
- New-ThrottlingPolicy, Set-ThrottlingPolicy (Exchange 2013), Set-ThrottlingPolicy (Exchange 2010), Get-ThrottlingPolicy, and Remove-ThrottlingPolicy;
- Set-ThrottlingPolicyAssociation and Get-ThrottlingPolicyAssociation;
- Set-Mailbox and Get-Mailbox.
How to implement EWS Throttling
The following is the recommended procedure.
To apply a throttle policy with no limits on EWS usage to the Riva user:
-
On an Exchange Client Access Server (CAS), start the Exchange Management Shell (EMS).
-
Create a new throttling policy. Run the following cmdlet in the EMS:
New-ThrottlingPolicy <PolicyName>
New-ThrottlingPolicy RivaThrottlingPolicy -
To define the policy options with no limits on EWS usage, run the following cmdlet in the EMS:
Set-ThrottlingPolicy <PolicyName> -option settingFor Exchange 2013:
Set-ThrottlingPolicy RivaThrottlingPolicy -RCAMaxConcurrency Unlimited -EWSMaxConcurrency Unlimited -EWSMaxSubscriptions Unlimited -CPAMaxConcurrency Unlimited -EwsCutoffBalance Unlimited -EwsMaxBurst Unlimited -EwsRechargeRate UnlimitedFor Exchange 2010:
Set-ThrottlingPolicy RivaThrottlingPolicy -EWSPercentTimeInAD $null -EWSPercentTimeInMailboxRPC $null -EWSMaxConcurrency $null -EWSMaxSubscriptions $null -EWSPercentTimeInCAS $null -
To associate the throttling policy to the Riva connection user, run the applicable cmdlet in EMS:
For Exchange 2010 - no service packs (this can be used for Exchange versions 2010 SP1+ and 2013)
For Exchange 2010 SP1 and higher:
Set-ThrottlingPolicyAssociation -Identity <RivaConnectionUser> -ThrottlingPolicy <PolicyName>
Replace <RivaConnectionUser> with the NTLM username, for example, riva_svc
Set-ThrottlingPolicyAssociation -Identity riva_svc -ThrottlingPolicy RivaThrottlingPolicy
Set-Mailbox "<RivaConnectionUser>" -ThrottlingPolicy <PolicyName>
Set-Mailbox "riva_svc" -ThrottlingPolicy RivaThrottlingPolicy
Technical Note
The Riva sync policy includes a means to implement connection throttling by using execution threads.