Topic Last Modified: 2006-04-20

The Microsoft® Exchange Server Analyzer Tool queries the Win32_PerfRawData_MSExchangeDSAccess_MSExchangeDSAccessCaches Microsoft Windows® Management Instrumentation (WMI) class to determine the current value for TotalEntriesMemoryUserData. If the Exchange Server Analyzer Tool finds that the value for TotalEntriesMemoryUserData equals the total size of the Directory Service Access (DSAccess) user cache (MaxMemoryUser), a warning is displayed.

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. Additionally, 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). 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. To improve performance, the default value for the user cache has been optimized and set to 140 MB in Exchange Server 2003.

Because the default setting maximum size for the DSAccess user cache was raised from a value of 25 MB in Exchange 2000 Server to a value of 140 MB in Exchange Server 2003, this warning message will likely be generated on Exchange 2000 Server computers. Regardless of what version of Exchange generates this warning message, the problem should be corrected as soon as possible. On systems with an undersized DSAccess cache, local message delivery and address book name resolution may be slower than you want.

The maximum size of the user cache can be manually configured with a registry entry on the Exchange server. MaxMemoryUser is an Exchange 2000 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.

The MaxMemoryUser value is often used with the MaxMemoryConfig value, which controls the maximum amount of memory that configuration data objects in the DSAccess cache can consume. If you edit or remove the MaxMemoryUser value as described in the following procedure, 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 correct this problem on an Exchange 2000 Server computer

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

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

  3. Increase the value for MaxMemoryUser. If this DWORD value does not exist, you can manually create it. The value data for this registry entry is in kilobytes (KB); therefore a decimal entry of 140000 equals 140 MB.

  4. Decrease the value for MaxMemoryConfig. If this DWORD value does not exist, you can manually create it. The value data for this registry entry is also in kilobytes. A value of 5000 decimal, which equals 5 MB, is recommended.

  5. Exit the registry editor and restart Microsoft Exchange System Attendant for the change to take effect.

To correct this problem on an Exchange Server 2003 computer

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

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

  3. If MaxMemoryUser exists and is configured for less than 140 MB, delete the MaxMemoryUser value. If MaxMemoryUser exists and is more than 140 MB, increase its value by 10 percent.

  4. If MaxMemoryConfig exists, delete it.

  5. Exit the registry editor and restart Exchange System Attendant for the change to take effect.

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" at (http://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" (http://go.microsoft.com/fwlink/?LinkId=3052&kbid=250570).