DetailPage-MSS-KB

Microsoft small business knowledge base

Article ID: 2651621 - Last Review: May 13, 2012 - Revision: 2.0

Hotfix Download Available
View and request hotfix downloads
 

SYMPTOMS

When you try to use the resource-scheduling feature Find Available Times in Microsoft Dynamics CRM, you experience poor performance. If you use Find Available Times again and start a new query, performance improves, and the results take much less time.

CAUSE

This issue occurs because the Microsoft Dynamics CRM deployment contains many entities that are related to scheduling, and multiple SQL queries are run to retrieve individual records during the resource-scheduling process of Find Available Time.

RESOLUTION

To resolve this issue, download and then install Update Rollup 8 for Microsoft Dynamics CRM. To do this, see the following article in the Microsoft Knowledge Base:
2600644  (http://support.microsoft.com/kb/2600644/ ) Update Rollup 8 for Microsoft Dynamics CRM 2011 is available

After you install the update rollup, you should create the following registry key on the CRM server for the entities that are related to scheduling: 
SchedulingEngine.CacheConfiguration
After you do this, these entities will be added to the cache to optimize performance.

To create the registry key, follow these steps:
  1. On the Microsoft Dynamics CRM server, point to the Start menu, and then type regedit in the search box to open Registry Editor.
  2. Locate the following registry subkey:
    HKEY_Local_Machine\Software\Microsoft\MSCRM
  3. Right-click MSCRM, point to New, and then click String Value.
  4. Type SchedulingEngine.CacheConfiguration.
  5. Right-click the new key, and then click Modify. The modifications that you make will resemble the following XML. However, your modifications will depend on the entities and options that you want to use. See the "More Information" section for detailed information.
    <CachingModes>
    <CachingMode name="BookCaching">
    <Calendar>DefaultCache</Calendar>
    <CalendarRule>DefaultCache</CalendarRule>
    <Commitment>DefaultCache</Commitment>
    <ConstraintGroup>DefaultCache</ConstraintGroup>
    <Equipment>Direct</Equipment>
    <PluginType>DefaultCache</PluginType>
    <Resource>Direct</Resource>
    <ResourceGroup>DefaultCache</ResourceGroup>
    <ResourceExpansion>DefaultCache</ResourceExpansion>
    <ResourceGroupExpansion>DefaultCache</ResourceGroupExpansion>
    <ResourceSpec>Direct</ResourceSpec>
    <Schedule>DefaultCache</Schedule>
    <Service>DefaultCache</Service>
    <SystemUser>Direct</SystemUser>
    <Team>DefaultCache</Team>
    </CachingMode> 
    <CachingMode name="SearchCaching">
    <Calendar>DefaultCache</Calendar>
    ... (and other entities like above)
    </CachingMode>
    <CachingMode name="PublishResourceGroupsCaching">
    <Calendar>Direct</Calendar>
    (and other, similar entities) 
    </CachingMode>
    </CachingModes>

MORE INFORMATION

For each entity that you add to the cache, there are two possible values: Direct and DefaultCache.
  • A value of DefaultCache tries to optimize on the number of SQL queries and retrieves all records at one time by using a single query. After all records are retrieved, the data is stored in the HTTP cache.
  • A value of Direct queries for each record by using a separate SQL query.

Note If you add more entities to the cache, memory usage may increase slightly because of increased cache size.

There are three mode types:
  • SearchCaching. Used when "find available times" or validation of service appointment is being performed
  • BookCaching. Used when a service appointment is being saved
  • PublishResourceGroupCaching. Used when the resource groups are reorganized and "publish resource tree" is performed
The mode for some entities can be set collectively by using the Resources tag and the ResourceGroups tag. Or, the entities can be set separately at a granular level.

Resources entities include the following subtypes:
  • Equipment
  • SystemUsers
  • ResourceSpec
ResourceGroups entities include the following subtypes:
  • ConstraintBasedGroup
  • Team

APPLIES TO
  • Microsoft Dynamics CRM 2011
Keywords: 
kbautohotfix kbqfe kbhotfixserver kbfix KB2651621
Share
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support