KBI 310106 Microsoft Exchange 2007 and Back Pressure

Version

Microsoft Exchange 2007

Date

28 Dec 2007

Summary

Exchange 2007 implements a new Resource Monitoring feature for Microsoft Exchange Transport called ‘Back Pressure‘.

This feature was implemented to avoid Microsoft Exchange Transport Services (those responsible for delivering mail) from being stopped due to the following reasons:

  • HD Space on the partition that stores message queue databases is critically low
  • HD Space on the partition that stores message queue database transaction logs is critically low
  • Number of Uncommitted message queue database transactions that exist in memory is too high
  • Memory that is used by the EdgeTransport.exe process is too high
  • Memory that is used by all processes is too high.

Technical Background

In older versions of Microsoft Exchange Server, the above conditions would cause the services to stop running and would not allow those services to be restarted until the condition is corrected.

With Microsoft Exchange 2007, ‘Back Pressure‘ is applied when these conditions exist based on the following levels:

  • Normal = Resources not overused
  • Medium = Resources only moderately overused. Microsoft Exchange Transport Services will continue to let mail

    flow for the Domain where the Microsoft Exchange Transport services live.

  • High = Resources highly overused. Microsoft Exchange Transport Services will stop listening to incoming

    SMTP connections, as well as stop accepting messages from Mailbox Servers.

This is done to give the Microsoft Exchange Transport Services a chance to finish sending any mail that is already in the message queue and will sit idle until these conditions are corrected.

Resolution

In the case that this feature needs to be disabled, you can do so from the EdgeTransport.exe.config file. By default, this file is located in C:\Program Files\Microsoft\Exchange Server\Bin

To disable ‘Back Pressure‘, you can simply give ‘EnableResourceMonitoring‘ a value of ‘false‘ as shown in the following screenshot:

Thresholds for all 3 levels (Normal, Medium and High) can also be modified in the same file (EdgeTransport.exe.config) for each of the 5 conditions with the following variables:

HDD Space that stores message queue database

  • PercentageDatabaseDiskSpaceUsedHighThreshold
  • PercentageDatabaseDiskSpaceUsedMediumThreshold
  • PercentageDatabaseDiskSpaceUsedNormalThreshold

HDD Space that stores message queue database transaction logs

  • PercentageDatabaseLoggingDiskSpaceUsedHighThreshold
  • PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold
  • PercentageDatabaseLoggingDiskSpaceUsedNormalThreshold

Number of Uncommitted message queue database transactions that exist in memory

  • VersionBucketsHighThreshold
  • VersionBucketsMediumThreshold
  • VersionBucketsNormalThreshold

Memory that is used by the EdgeTransport.exe process

  • PercentagePrivateBytesUsedHighThreshold
  • PercentagePrivateBytesUsedMediumThreshold
  • PercentagePrivateBytesUsedNormalThreshold

Memory that is used by all processes

  • PercentagePhysicalMemoryUsedLimit

By default, Medium Threshold levels is defined as 2% lower than the High Threshold level and Normal Threshold level is 4% lower than the High Threshold level.