How to set use OAB Throttling effectively

In this blog I will break down how to use OAB throttling. There are a few things that I need to explain about this as most of the administrators that use this never get it to work properly. Using OAB throttling is not a set it and forget it type of deal, the numbers *must* be recalculated every hour for it to work properly (this is based on your network).

How can we try to control the network consumption by using OAB Throttling?
The answer to this is throttling the bandwidth from the server. By default, every client request for a full offline Address Book download is served immediately, and the public store does not limit the number of concurrent full offline Address Book downloads that can occur.

For example: if you public folder store supports 10,000 users and receives 3,000 OAB download requests per hour (1 hour), and your offline Address Book size is 100 megabytes (MB), the server must deliver 300 gigabytes (GB) of data to your clients. This traffic could potentially and most of the time will overload a 100-megabits-per-second (Mbps) local area network (LAN) for longer than ten hours. This same traffic could also potentially overload a gigabit-per-second LAN for longer than one hour.

How do we calculate the largest OAB message size?

1. To find out the biggest  message size you can run OABInteg /s:exchsrvname /t:oabfldcheck /v:2 /l against the public folder information store that holds your OAB files (not a replica). This will dump out the message and attachment information. The messages that are in the information store contain the attachments and they are in compressed state. Here is an example of the Oabfldcheck summary:

Scan Completed
Message Class Normal found: 2
Message Class Differential found: 175
Message Class Unknown found: 0
Message Attachments found: 503
Messages found but unable to read the properties: 0
System folders found: 3
Highest sequence number found: 231
Lowest sequence number found: 16
Biggest attachment found: 16700 Bytes
Smallest attachment found: 102 Bytes
Biggest message found: 100,000,000 Bytes
Smallest message found: 106 Bytes

2. Take the size of the largest message (here in my case it is 100 MB) x total number of users downloading the OAB x request per hour = number of data to be delivered by the server.

To download OABInteg please see Microsoft KB Article ID: Q907792 - Description of the Offline Address Book Integrity (OABInteg) tool

How to enable OAB Throttling

  1. Run OABInteg and find out what the largest OAB message is.
  2. Set up performance monitor and watch the extended MSExchangeIS Performance Monitor counter OAB: Full downloads bytes/sec during a company-wide download that is overloading your LAN. This should be done for about one hour (this is the most accurate way).
  3. Make note of the bandwidth used by offline Address Book downloads on each server.
  4. Set the threshold values to a percentage of those values. For example, set the threshold values to 45 - 60% of those values.
  5. Monitor for the next hour and recalculate the numbers. As users download the OAB these numbers will no longer be affective. If we cross the threshold all users will start to ignore the values specified in the registry.

The formula = 100 MB x 10,000 (users)  x 3,000 (requests) = 300 GB (of data) / 45% – 60% (total size) = 135,000,000 ( is based on 45% ).

To turn on this feature on for a public store server that is used for offline Address Book distribution, follow these steps.

Warning: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly.

***Use Registry Editor at your own risk***

  1. Click Start, click Run, type regedit in the Open box, and then click OK. 
  2. Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\ 
  3. On the Edit menu, point to New, and then click DWORD Value. 
  4. Type OAB Bandwidth Threshold (KBps) for the name of the DWORD, and then press ENTER.
  5. Right-click OAB Bandwidth Threshold (KBps), and then click Modify. 
  6. In the Base area, click Decimal.
  7. In the Value data box, type the value that you want to use, and then click OK.
  8. Click OK, and then quit Registry Editor.

To return to the default behavior, delete the registry value.

Things you need to Understand about OAB Throttling

  1. This feature does not decrease the overall number of downloaded bytes by the Outlook clients.
  2. When you limit the bandwidth that is used by full offline Address Book downloads, this feature may extend the time elapsed until all clients receive their updated full offline Address Books. Therefore, you should only use this feature if you have very large offline Address Books and you must protect your LANs from overloading. Additionally, you should set the threshold value as high as possible.
  3. After you apply this registry setting, when an Outlook client tries to download a full offline Address Book, the public store determines the average full offline Address Book bytes that were downloaded over the previous ten seconds. One of the following two behaviors will occur:
  • If the value is less than the OAB Bandwidth Threshold, the client can continue with the full offline Address Book download at full speed.

  • If the value is more than the OAB Bandwidth Threshold, the client cannot continue with the full offline Address Book download, the extended MSExchangeIS Performance Monitor counter OAB: Full download attempts blocked is incremented by one, and the Outlook client receives the an error message.

5. Clients that are using Microsoft Office Outlook 2003 SP1 or earlier receive the following error message: 'Microsoft Exchange Server' reported error (0x8004010B) : 'Unknown Error 0x8004010B' -> The Outlook client will try to download the full offline Address Book again, one time every hour, until it succeeds.