Topic Last Modified: 2007-01-17

The Microsoft® Exchange Server Analyzer Tool reads the following registry entry to determine if the maximum number of asynchronous Internet Information Services (IIS) file handles has been modified from the default value of 1,000:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SMTPSvc\Queuing\MsgHandleAsyncThreshold

If the Exchange Server Analyzer finds MsgHandleAsyncThreshold to be present and configured with an alternate value, a warning is displayed.

The MsgHandleAsyncThreshold value specifies the maximum number of asynchronous file handles that IIS can use. File handles are cached to improve performance because cached file handles save the server from performing redundant input/output (I/O) and CPU cycles. Each time the SMTP transport stack on an Exchange Server computer receives a message, it is streamed out to the file system where it waits to be routed to its destination. To write to the file system, the SMTP transport stack obtains a file handle and then passes the message into that handle. Each file handle consumes approximately 2 kilobytes (KB) of paged pool memory. The default number of IIS cache file handles is 800 for every 32 MB.

Prior to Exchange 2000 Server with Service Pack 2 (SP2), Exchange servers that sustained large SMTP message queues (for example, an average of 1,000 or more messages) have encountered performance constraints because of a default setting on the SMTP service of a maximum of 1,000 file handles. Because Exchange 2000 Server defaulted to a maximum of 1,000 file handles, the SMTP service could write only 1,000 simultaneous messages to the file system.

To improve performance for these large systems, three registry entries were often simultaneously adjusted to increase the maximum number of file handles that could be opened by the SMTP service (so that more messages could be processed) and to decrease the number of open file handles for the installable file system, another Exchange component (to avoid running out of memory when the queue is large). These registry values, which did not exist by default and therefore needed to be manually added, are listed below:

Location: HKLM\System\CurrentControlSet\Services\SMTPSvc\Queuing

Value: MsgHandleThreshold

Type: REG_DWORD

Location: HKLM\System\CurrentControlSet\Services\SMTPSvc\Queuing

Value: MsgHandleAsyncThreshold

Type: REG_DWORD

Location: HKLM\System\CurrentControlSet\Services\Inetinfo\Parameters

Value: FileCacheMaxHandles

Type: REG_DWORD

The MsgHandleThreshold and MsgHandleAsyncThreshold entries are typically tuned to the same value (usually a value greater than 1,000) and the FileCacheMaxHandles value is usually reduced from 800 to 600.

This registry value is not present by default because Exchange 2000 Server with SP2 and later dynamically determines the optimal values to use. If this Exchange server is running Exchange 2000 Server with Service Pack 1 (SP1) or earlier, it is recommended as a best practice that you upgrade to the latest service pack and roll-up package. After you have upgraded to the latest code, you can delete these registry entries.

Exchange Server 2003 dynamically calculates the appropriate settings for SMTP file handles, so these settings are no longer needed. Therefore, unless directed otherwise by Microsoft Product Support Services, before upgrading any Exchange 2000 Server computers with these settings to Exchange Server 2003, you should delete these entries from the registry.

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 revert to the default configuration

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

  2. Navigate to: HKLM\System\CurrentControlSet\Services\SMTPSvc\Queuing

  3. In the right-hand pane, delete the MsgHandleAsyncThreshold value.

  4. Close the registry editor, and then restart the IIS Admin service for the change to take effect.

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