Applies to: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Topic Last Modified: 2007-05-08

This topic explains the message throttling options that are available in Microsoft Exchange Server 2007. Message throttling is a group of limits that are put on the number of messages and connections that can be processed by a computer that is running Exchange 2007 that has the Hub Transport server role or Edge Transport server role installed. These limits prevent the accidental or intentional inundation of the system resources on the transport server.

Understanding the Scope of Message Throttling

Message throttling involves a variety of limits on message processing rates, Simple Mail Transfer Protocol (SMTP) connection rates, and SMTP session time-outs. These limits work together to protect the Hub Transport server or Edge Transport server from being overwhelmed by accepting and delivering messages. Although a large backlog of messages and connections may be waiting to be processed, the message throttling limits enable the transport server to process the messages and connections in an orderly manner.

In addition to message throttling, Exchange 2007 also lets you put size limits on the individual components of messages, such as the number of recipients, the size of the message header, or the size of individual attachments. For more information about message size limits, see Managing Message Size Limits.

Another Exchange 2007 feature that helps prevent the inundation of system resources of an Exchange 2007 transport server is back pressure. Back pressure is system resource monitoring feature on the Hub Transport servers and Edge Transport servers. When a monitored system resource, such has hard disk drive utilization or memory utilization, exceeds the specified threshold, the Exchange transport server stops accepting new connections and messages, and concentrates on delivering existing messages. When the utilization of the monitored system resources returns to normal levels, the Exchange transport server accepts new connections and messages. For more information about back pressure Understanding Back Pressure.

Message Throttling Options on Transport Servers

You can set the message throttling options at the following locations:

  • On the transport server

  • On a Send connector

  • On a Receive connector

You can set all the message throttling options that are available on Hub Transport servers or Edge Transport servers in the Exchange Management Shell. You can also set some of the same options by using the transport server properties in the Exchange Management Console. Although the settings are functionally equivalent, the two management interfaces use slightly different terms in some cases.

Configuring Message Throttling on Transport Servers by Using the Exchange Management Shell

Table 1 shows the message throttling options that are available on Hub Transport servers or Edge Transport servers in the Exchange Management Shell.

Table 1   Message throttling options available in the Exchange Management Shell

Source Parameter Description

Set-TransportServer

MaxConcurrentMailboxDeliveries

This parameter specifies the maximum number of delivery threads that the Hub Transport server can have open at the same time to deliver messages to mailboxes. The store driver on the Hub Transport server is responsible for delivering messages to and from Mailbox servers. This limit applies to the delivery of messages to any mailboxes in the Exchange organization. The default value of the MaxConcurrentMailboxDeliveries parameter is 30.

Set-TransportServer

MaxConcurrentMailboxSubmissions

This parameter specifies the maximum number of delivery threads that the Hub Transport server can have open at the same time to accept messages from mailboxes. The store driver on the Hub Transport server is responsible for delivering messages to and from Mailbox servers. This limit applies to the acceptance of new messages from any mailboxes in the Exchange organization. The default value of the MaxConcurrentMailboxDeliveries parameter is 30.

Set-TransportServer

MaxConnectionRatePerMinute

This parameter specifies the maximum rate at which new inbound connections can be opened to the Hub Transport server or the Edge Transport server. These connections are opened to any Receive connectors that exist on the server. The default value for the MaxConnectionRatePerMinute parameter is 1,200 connections per minute.

Set-TransportServer or

Transport server properties

MaxOutboundConnections

This parameter specifies the maximum number of concurrent outbound connections that the Hub Transport server or Edge Transport server can have open at the same time. The outbound connections occur by using the Send connectors that exist on the server. The value that is specified by the MaxOutboundConnections parameter applies to all the Send connectors that exist on the transport server. The default value of the MaxOutboundConnections parameter is 1,000. If you enter a value of unlimited, no limit is imposed on the number of outbound connections.

Set-TransportServer or

Transport server properties

MaxPerDomainOutboundConnections

This parameter specifies the maximum number of connections that an Internet-facing Hub Transport server or Edge Transport server can have open to any single remote domain. The outbound connections to remote domains occur by using Send connectors that exist on the server. The default value of the MaxPerDomainOutboundConnections parameter is 20. If you enter a value of unlimited, no limit is imposed on the number of outbound connections per domain.

Set-TransportServer

PickupDirectoryMaxMessagesPerMinute

This parameter specifies the rate of message processing for both the Pickup directory and Replay directory. Each directory can independently process message files at the rate that is specified by the PickupDirectoryMaxMessagesPerMinute parameter. By default, the Pickup directory can process 100 messages per minute, and the Replay directory can process 100 messages per minute at the same time.

The Pickup directory and the Replay directory scan for new message files once every 5 seconds, or 12 times per minute. This 5-second polling interval is not configurable. This means the maximum number of messages that can be processed during each polling interval is the value that you assign to the PickupDirectoryMaxMessagesPerMinute parameter divided by 12 (PickupDirectoryMaxMessagesPerMinute/12). By default, a maximum of just over eight messages can be processed during each 5-second polling interval.

For more information, see the following topics:

Configuring Message Throttling on Transport Servers by Using the Exchange Management Console

The following procedure shows how to configure the message throttling options for the Hub Transport servers or Edge Transport servers that are available in the Exchange Management Console.

To use the Exchange Management Console to configure the message throttling options for a Hub Transport server or an Edge Transport server
  1. Open the Exchange Management Console. Follow one of these steps:

    • On a computer that has the Edge Transport server role installed, in the console tree, select Edge Transport, and then click the Properties link that is directly under the server name.

    • On a computer that has the Hub Transport server role installed, in the console tree, expand Server Configuration, and then select Hub Transport. In the result pane, select a server. In the action pane, click the Properties link that is directly under the server name.

  2. Click the Limits tab. In the Connection restriction section, select the settings that you want to use for message throttling. The following options are available:

    • Maximum concurrent outbound connections   By default, this option is selected. This option corresponds to the MaxOutboundConnections parameter on the Set-TransportServer cmdlet. The default value is 1000.

    • Maximum concurrent outbound connections per domain   By default, this option is selected. This option corresponds to the MaxPerDomainOutboundConnections parameter on the Set-TransportServer cmdlet. The default value is 20.

  3. Click OK.

Message Throttling Option on Send Connectors

Table 2 shows the message throttling option that is available on Send connectors that are configured on a Hub Transport server or an Edge Transport server. You must use the Exchange Management Shell to configure this option.

Table 2   Message throttling option that is available on Send connectors

Source Parameter Description

Set-SendConnector

ConnectionInactivityTimeOut

This parameter specifies the maximum time that an open SMTP connection with a destination messaging server can remain idle before the connection is closed. The default value is 10 minutes.

For more information, see Set-SendConnector.

Message Throttling Options on Receive Connectors

Table 3 shows the message throttling options that are available on Receive connectors that are configured on a Hub Transport server or an Edge Transport server. You must use the Exchange Management Shell to configure these options.

Table 3   Message throttling options that are available on Receive connectors

Source Parameter Description

Set-ReceiveConnector

ConnectionInactivityTimeOut

This parameter specifies the maximum time that an open SMTP connection with a source messaging server can remain idle before the connection is closed. The default value for a Receive connector that is configured on a Hub Transport server is 5 minutes. The default value for a Receive connector that is configured on an Edge Transport server is 1 minute.

Set-ReceiveConnector

ConnectionTimeOut

This parameter specifies the maximum time that an SMTP connection with a source messaging server can remain open, even if the source messaging server is transmitting data. The default value for a Receive connector that is configured on a Hub Transport server is 10 minutes The default value for a Receive connector that is configured on an Edge Transport server is 5 minutes. The value specified by the ConnectionTimeout parameter must be larger than the value specified by the ConnectionInactivityTimeout parameter.

Set-ReceiveConnector

MaxInboundConnection

This parameter specifies the maximum number of inbound SMTP connections that this Receive connector allows at the same time. The default value is 5000.

Set-ReceiveConnector

MaxInboundConnectionPercentagePerSource

This parameter specifies the maximum number of SMTP connections that a Receive connector allows at the same time from a single source messaging server. The value is expressed as the percentage of available remaining connections on a Receive connector. The maximum number of connections that are permitted by the Receive connector is defined by the MaxInboundConnection parameter. The default value of the MaxInboundConnectionPercentagePerSource parameter is 2 percent.

Set-ReceiveConnector

MaxInboundConnectionPerSource

This parameter specifies the maximum number of SMTP connections that a Receive connector allows at the same time from a single source messaging server. The default value is 100.

Set-ReceiveConnector

MaxProtocolErrors

This parameter specifies the maximum number of SMTP protocol errors that a Receive connector allows before the Receive connector closes the connection with the source messaging server. The default value is 5.

Set-ReceiveConnector

TarpitInterval

This parameter specifies the delay that is used in tarpitting. Tarpitting is the practice of artificially delaying SMTP responses for specific SMTP communication patterns that indicate a directory harvest attack or other unwelcome messages. A directory harvest attack is an attempt to collect valid e-mail addresses from a particular organization to use as a target for unsolicited commercial e-mail.

The delay that is specified by the TarpitInterval parameter only applies to anonymous connections. The default value of the TarpitInterval parameter is 5 seconds. For more information, see Recipient Filtering.

For more information, see Set-ReceiveConnector.