When we perform network bandwidth planning for Exchange deployments we always ask “what is the size of your OAB?” This is important since if you have a large OAB file it can severely affect the amount of network bandwidth that you require.
One of the things that I noticed while creating and validating the Exchange Client Network Bandwidth Calculator was that many organizations did not know much about their OAB size or placement. This was tricky since I needed to know the size of the OAB so that we could predict how it might affect the network bandwidth requirements for that customer.
I decided that I would start this post to explain what the OABv4 files are, where to find them and how to determine the size of your OABv4 file J
Note: Before we dive in it is important to note here that I am concentrating on OABv4 – this was introduced with Exchange Server 2003 SP2 and Outlook 2003 SP2 (that was a long time ago!). I am hoping that everyone reading this is using OABv4 – if you’re not then it’s probably time you looked at how to upgrade since there are many benefits from OABv4 including additional stability and much better bandwidth usage.
Where is my OAB file?
The OAB file is generated on one of your Exchange Mailbox Servers, to find out which one, we need to take a quick look at the Offline Address Books.
Get-OfflineAddressBook | ft server,guid,AddressLists –AutoSize
In this example I am going to look at the Default Global Address List. The command returns two interesting values for each OAB;
- Server: This is the server that is currently generating the OAB files
- GUID: This is the name of the folder that contains this particular OAB file
To find the actual files, we need to take a look at the server that is generating the OAB file; on that server we need to look in the following folder;
C:\Program Files\Microsoft\Exchange Server\V14\ExchangeOAB\
Inside this folder we need to look for a folder with the name that matches our OAB GUID returned earlier. In this example we are looking for 2b525e9b-6030-428d-adb4-87c8d52df116
In my lab I only have a single OAB file, so it’s pretty easy.
This folder is where your OAB files are stored; if we take a look inside the folder, we can see the files that are used by clients to generate the OAB can be found….
What are all of these files inside my Offline Address Book Folder then?
Now, this is the interesting question! So, we know where our OAB files are, but which files are important?
Let’s take a look at the files we have…
|OAB.XML||This is the manifest file. Clients will download this XML file to determine how far out of date they are and which files they need to get up to date.|
|*-DATA-<sequence>.LZX||This is your actual compressed OAB file. If you trigger a full OAB download this file is always requested. It contains all of the raw binary data within the OAB|
|*-BINPATCH-<sequence>.LZX||These files represent delta changes since the last OAB generation. Clients that are connected every day will download the latest BINPATCH file every day.|
|*-LNG<Lang ID>-<sequence>-LZX||These files are language files used by the client to generate a language specific OAB.|
The <sequence> number is iterated each time the OAB is regenerated. If there have been no changes since the last build, there will be no iteration of the sequence number and the clients will not download any patches. You can see from this that my lab has had 4 generations of the OAB.
So which bits do I need for the Exchange Client Network Bandwidth Calculator?
The bandwidth calc asks for two pieces of information about your OAB file:
- Offline Address Book Size
- %GAL Changes per Day
Offline Address Book size is simply the size of your *-DATA-<sequence>.LZX file.
%GAL Changes per Day is a little more complex. Essentially what we are trying to do with this value is determine how much bandwidth we need on a daily basis to keep Outlook’s OAB up to date. To do this we need to take a look at the size of our *-BINPATCH-<sequence>.LZX files;
To do this I have used the dir command from within the OAB directory
This gives us a list of binpatch files; what we need from this is to determine the size of these as a % of the OAB file and then average the changes.
Note: In this example I use a script and or Loadgen to generate large quantities of mailboxes every week so the data is extremely unrepresentative, however the process remains the same for everyone J
- OAB Size : 984,994 bytes = ( 984994 / ( 1048576 ) ) = 0.93MB
- Patch1 Size: 636,276 = ( 636276 / 984994 ) x 100 = 65%
- Patch2 Size: 291,652 = ( 291652 / 984994 ) x 100 = 30%
- Patch3 Size: 52,748 = ( 52748 / 984994 ) x 100 = 5%
- Average Daily Changes = (65 + 30 + 5) / 3 = 33%
So, for my lab environment I would enter the following values into the network calc.
What about Exchange Server 2003?
Exchange Server 2003 stores its OAB files within public folders. If you are using OABv4 then the same files exist within your system public folders;
- Open Exchange System Manager
- Expand your Administrative Group
- Expand Folders
- Right Click on Public Folders and select View system Folders
- Expand OFFLINE ADDRESS BOOK
- Expand the OAB you are interested in
- Expand OAB version 4
- Click on the Content Tab
Write down the sizes of the OAB files
Once you have the sizes for your files you can follow the instructions for Exchange 2007 and Exchange 2010.
General Curiosities and other stuff…
I thought I would also include some interesting stuff about OAB files J
- OABv4 was introduced with Exchange Server 2003 SP2 and requires both Exchange 2003 SP2 and Outlook 2003 SP2.
- Dave Goldman introduced the new binpatch and OABv4 changes via an EHLO blog post on August 1st 2005 (anyone else feeling old?)
- If your client MAPI profile is still in non-Unicode mode (MAPI profile hasn’t been re-created after migration from Exchange 5.5!) you will be using OABv2 regardless of what you configure elsewhere.
- The 1/8th OAB full download rule does not apply to OABv4 – instead a full download due to excessive patch file size is 50% in OABv4
- OAB downloads can be throttled to reduce network bandwidth impact if you need to.
Hopefully this post will help remove some of the ambiguity regarding OAB sizes.
Senior Consultant, MCS UK