How to Configure the DSAccess Configuration Cache


Topic Last Modified: 2011-01-13

Directory Service Access (DSAccess) is an internal component in Exchange 2000 Server and Exchange Server 2003 that controls how all Exchange components access 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 Information 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 LDAP query against Active Directory.

MaxMemoryConfig is an Exchange 2000 Server registry parameter that typically is no longer needed in Exchange Server 2003. MaxMemoryConfig controls the maximum amount of memory that configuration data objects in the DSAccess configuration cache are allowed to consume. In Exchange 2000 Server, the configuration cache was initially set at 25 MB in size. On most Exchange servers this setting was much larger than it needed to be. The MaxMemoryConfig setting was used to reclaim and reallocate some of the memory used by the DSAccess configuration cache. Typically it was configured for 5 MB. Based on internal testing and customer feedback, Microsoft has found 3 MB to be the optimal size, which Exchange Server 2003 uses as an out-of-the-box setting. 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 MaxMemoryConfig is no more than 5 MB.

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

Before you perform the procedure in this topic, be aware that the procedure contains information about editing the registry.

Incorrectly editing the registry can cause serious problems that may require you to reinstall your operating system. Problems resulting from editing the registry incorrectly may not be able to be resolved. Before editing the registry, back up any valuable data.

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

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

  3. If MaxMemoryConfig is present, delete it.

  4. Restart the Microsoft Exchange System Attendant service for the change to take effect.