DSAccess user cache value is non-default

[This topic is intended to address a specific issue called out by the Exchange Server Analyzer Tool. You should apply it only to systems that have had the Exchange Server Analyzer Tool run against them and are experiencing that specific issue. The Exchange Server Analyzer Tool, available as a free download, remotely collects configuration data from each server in the topology and automatically analyzes the data. The resulting report details important configuration issues, potential problems, and nondefault product settings. By following these recommendations, you can achieve better performance, scalability, reliability, and uptime. For more information about the tool or to download the latest versions, see "Microsoft Exchange Analyzers" at https://go.microsoft.com/fwlink/?linkid=34707.]  

Topic Last Modified: 2005-11-18

The Microsoft® Exchange Server Analyzer Tool reads the following registry entries to determine if the size of the Directory Service Access (DSAccess) user object cache has been modified from the default value:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeDSAccess\Instance0\MaxMemoryUser

If the Exchange Server Analyzer finds MaxMemoryUser to be present and configured, a non-default configuration message is displayed.

MaxMemoryUser is an Exchange server registry parameter that allows an Exchange administrator to control the maximum amount of memory that user data objects in the DSAccess cache are allowed to consume.

DSAccess is an internal component in Exchange 2000 Server and Exchange Server 2003 that controls how all Exchange components access the Active Directory® directory service. The primary function of DSAccess is to maintain information about various directory-related events and operations. For example, DSAccess discovers the Active Directory topology and detects if domain controllers and global catalog servers are available and responding to queries. In addition, all directory queries made by internal Exchange components such as the Exchange store are routed through DSAccess, such as recipient resolution, configuration setting lookups, and others. As part of its job, DSAccess maintains an in-memory cache of the results of some of these queries so that if the same information is requested twice, it can be retrieved from the DSAccess cache instead of through another Lightweight Directory Access Protocol (LDAP) query against Active Directory.

In Exchange 2000 Server, the user cache was initially set at 25 megabytes (MB) in size. On Exchange 2000 Server computers that service a large number of Microsoft Office Outlook® 2003 clients, the default DSAccess user cache size was not sufficient. On systems with an undersized DSAccess cache, local message delivery and address book name resolution may be slower than desirable.

To improve performance, the default value for the user cache has been optimized and set to 140 MB in Exchange Server 2003. When upgrading from Exchange 2000 Server to Exchange Server 2003, any manual setting will be preserved. If this Exchange server was upgraded from Exchange 2000 Server to Exchange Server 2003, you should make sure the value for MaxMemoryUser is at least 140 MB.

The MaxMemoryUser value was often used in conjunction with the MaxMemoryConfig value, which controls the maximum amount of memory that configuration data objects in the DSAccess cache are allowed to consume. If you edit or remove the MaxMemoryUser value as described in the procedure that follows, you should similarly edit or remove the MaxMemoryConfig value as described in DSAccess configuration cache value is non-default.

Important

This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore the registry if a problem occurs. For information about how to restore the registry, view the "Restore the Registry" Help topic in Regedit.exe or Regedt32.exe.

To use the MaxMemoryUser registry key

  1. Open a registry editor, such as Regedit.exe or Regedt32.exe.

  2. Navigate to: HKLM\System\CurrentControlSet\Services\MSExchangeDSAccess\Instance0

  3. Examine or edit the value for MaxMemoryUser.

    The value for this registry entry is in kilobytes (KB). If the value is set to 140000 or less, you should delete MaxMemoryUser and restart Microsoft Exchange System Attendant to default to the Exchange Server 2003 setting.

Before you edit the registry, and for information about how to edit the registry, read the Microsoft Knowledge Base article 256986, "Description of the Microsoft Windows Registry" (https://go.microsoft.com/fwlink/?linkid=3052&kbid=256986).

For more information about DSAccess, see the Knowledge Base article 250570, "Directory Service Server Detection and DSAccess Usage" (https://go.microsoft.com/fwlink/?linkid=3052&kbid=250570).