I recently worked with a CRM 4.0 customer that was experiencing CRM outages due to their CRM Outlook clients in one location consuming a large amount of bandwidth. CRM Outlook clients do transmit and receive information with the CRM server for variety of reasons. I’ve listed a several of these reasons below:
- CRM Offline Data Synchronization
- The local data groups (LDGs) provide you with the ability to filter the data that will be synchronized to your offline CRM database. The more precise the filter, the less data that will need to be taken offline.
- The CRM Outlook client provides users with auto offline sync functionality. Within CRM Options, users can check the “Update local data every” option. This will synchronize data in the background while the CRM Outlook client is open, ultimately reducing the number of records that will have to be taken offline when the “Go Offline” button is selected. This option also provides you with the ability to specify the interval at which data is taken offline to your local database (the minimum synchronization time is set for all users within CRM System Settings).
- Users can also perform the “Go Offline” process manually at their liking throughout the day.
- CRM Address Book Provider Synchronization
- Each user can set their ABP options within their CRM Options. The “Match all contacts in Microsoft Dynamics CRM” and Match all items in Microsoft Dynamics CRM” options will synchronize all specified entities that you have access to (enabled and with a valid email address) to your local machine. The “Match all” option can add extra overhead to your CRM Outlook client as it does synchronize information from your CRM server to your CRM Outlook client. If you find that you don’t need to use the “Match all” option, the “Match only against contacts synchronized to Microsoft Dynamics CRM” and “Do not match” options would be preferred. These options would not cause any extra ABP overhead.
- The interval at which the CRM ABP synchronization occurs is specified by the end user within their CRM Options (the minimum synchronization time is set for all users within CRM System Settings). The smaller the synchronization interval, the more frequent the synchronizations occur. In most situations, a larger synchronization interval time is preferred to reduce the number of synchronizations occurring within the day.
- CRM Outlook Synchronization
- The more entities that are synchronized (contact, tasks, appointments, etc.), the more records that will be synchronized. End users are responsible for choosing which entities will be synchronized.
- The CRM/Outlook Contact synchronization also utilizes the contact local data group (LDG) to determine what data is synchronized with Outlook.
- The interval at which the synchronization occurs can also be set by the end user (the minimum synchronization time is set for all users within CRM System Settings). The smaller the synchronization interval, the more frequent the synchronizations occur. In most situations, a larger synchronization interval time is preferred to reduce the number of synchronizations occurring within the day.
- Each CRM Outlook client has a metadata.xml file that contains an xml representation of objects that describe the entities and relationships within your CRM organization (C:Documents and SettingsuserLocal SettingsApplication DataMicrosoftMSCRMMetadatametadata.xml). The CRM Outlook clients will need to refresh the metadata.xml file whenever the metadata is updated on the server. In some situations, this can take up a considerable amount of bandwidth. Some of the most common scenarios that can result in a metadata refresh are:
- Published customizations
- Adding new, or modifying, CRM Security Roles
- Giving CRM security roles to users
- Modifying the CRM System Settings
- The best way to determine if your users will need to refresh their metadata.xml file, or to see if a new copy has been recently put out to download, you’ll want to query the Notification table within the MSCRM_CONFIG database. Look in the EventData column for entries that contain MetadataCache (ex. CRMServer:w3wp:/LM/W3SVC/1/ROOT-1-129555817388032555:MetadataCache:MetadataCache). Keep in mind that the CreatedOn date (as well as all other date columns listed within CRM tables) is listed in UTC time. CRM Outlook clients, if connected to the CRM server, will download the full metadata file if there are any changes between the metadata file on the client compared to the metadata that exists on the server. The CRM Outlook client polls the notification table based off of the NotificationPollInterval client side registry value (default value is every 3 minutes).
There aren’t any 100% right or wrong answers when it comes to recommended settings for the items I’ve listed above. I hope that you come away with a better understanding of what to look into if you’re seeing large network traffic coming from your CRM Outlook clients.