Topic Last Modified: 2006-09-06

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


If the Exchange Server Analyzer finds MsgHandleThreshold to be present and configured with an alternate value, a non-default configuration message is displayed.

The MsgHandleThreshold value specifies the maximum number of 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 historically 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


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

Value: MsgHandleAsyncThreshold


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

Value: FileCacheMaxHandles


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.

If this Exchange server is running Exchange 2000 Server, it is recommended as a best practice that you upgrade to the latest level of service pack and roll-up package. After you have upgraded to the latest code, it is recommended that the MsgHandleThreshold value be set to the default of 1000.

The default MsgHandleThreshold value for Exchange Server 2003 is 1000, so these registry override 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.

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 error

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

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

  3. Delete the MsgHandleThreshold 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" (