The OAB is a snapshot of the GAL that Outlook clients can download
from Exchange to provide a local directory source for address
validation and lookup. All recipients in the GAL except those marked
with the Hidden From Address Lists property are included in the OAB (Figure 1). You can discover a list of hidden recipients with the following command:
Get-Recipient –Filter { HiddenFromAddressListsEnabled –eq $True }
Outlook
clients need to download a copy of the OAB before they are fully
functional when working offline. The OAB contains a subset of the
properties held for objects in Active Directory. However, users are
seldom aware of this fact because the OAB contains all the data they
typically need for email or to find recipients. Data that depend on
pointers between Active Directory objects are unavailable offline.
(Managers and their reports and group membership are the best
examples.) The same is true for customized properties you add to the
GAL unless you customize address templates to add them to the OAB.
One
problem with the OAB is that new recipients are invisible until
Exchange next generates updates for the OAB and clients connect,
download, and apply the updates to their OAB. For example, if you add a
new mailbox at 11 A.M. on Monday, and Exchange generates an OAB update
by the following midnight, the earliest a user will see the new mailbox
in the GAL is after he connects Outlook to Exchange and downloads the
update, which could be the following Thursday or Friday. In reality,
this is not usually a problem except when you deal with high-profile
users, such as new executives, who want to be visible to the
organization as soon as their mailbox is created. There are two
workarounds to the problem. First, you can always use the SMTP address
of newly created messages to route email to them. Second, you can use
the All Users address list to look for new entries because this forces
Outlook to connect to the server to browse the directory.
Outlook
clients that are configured in cached Exchange mode download the OAB
automatically. The first download occurs after the mailbox folders are
replicated to the OST. Thereafter, Outlook checks daily for OAB updates
and downloads them from Exchange if available. You cannot vary the
daily check; it is hard-coded into Outlook. In any case, it is a good
thing to have an automatic daily update because this keeps the OAB up
to date and prevents the OAB from accumulating a great deal of invalid
information because it hasn’t been regularly updated.
Tip
A
week-old OAB is usually okay unless the organization is in the middle
of a large merger or acquisition or has another reason for directory
churn. A month-old OAB is much less satisfactory because of the volume
of change that typically occurs in corporate directories.
If
an OAB update download fails, Outlook retries hourly until the download
succeeds. However, if Outlook needs to fetch a full copy of the OAB, it
will only try this operation once in a 13-hour period. Clients can also
download the OAB on a demand basis by using Send Receive | Download
Address Book.
You can minimize the amount of data downloaded by
selecting No Details, which causes Outlook to download a basic copy of
the OAB (basic recipient information and email addresses). These data
still allow the OAB to be used to locate recipients and validate email
addresses, but this method produces a file that is much less useful
than when it contains data, such as phone numbers, produced by a Full
Details download. Limiting data made sense in an era when networks were
less available and slower than they are today. In some respects, the
option to download a truncated OAB is of limited use unless you are
forced to use something such as a dial-up connection.
Like other
synchronization operations, Outlook uses a background thread to fetch
the OAB files to enable users to remain working while the download
proceeds. OAB data used to be made available through a system public
folder, but the focus is now on web-based distribution managed by
Mailbox servers. Clients with mailboxes on an Exchange 2013 server have
to connect to an Exchange 2013 Mailbox server to fetch OAB files,
whereas those with mailboxes on earlier Exchange servers are proxied to
an Exchange 2007 CAS or Exchange 2010 CAS server.
After you download the OAB, Outlook creates or updates a set of six files on the PC (Table 1).
These files vary in size, depending on the number of mail-enabled
recipients in the organization, and can occupy a reasonable amount of
space on disk. For example, a very large organization requires an OAB
of 383 MB to hold approximately 450,000 objects, or around 0.85 MB per
1,000 objects. The OAB files and updates are compressed when Outlook
downloads them, and the compressed files are roughly half the size of
the files when they are expanded on disk. However, it can still take a
long time to fetch a complete OAB inside a large organization.
Table 1. OAB files
File | Use |
UBrowse.oab | The
core index for the OAB. Records contain the object type, display name,
and a pointer to the rest of the object’s data held in the details file. |
UDetails.oab | All the details (if available) for objects populated through a Full Details download. This is the largest OAB file. |
URdndex.oab | An index used to resolve relative distinguished names for recipient objects and to track changes to domain names. |
UPdndex.oab | An index for domain names (such as contoso.com). |
UAnrdex.oab | An index used to resolve ambiguous names entered by users when addresses are validated. |
UTmplts.oab | A file containing language-specific strings used for dialog boxes and any other static items OAB templates use. |
Generally,
after the complete OAB is first downloaded, Outlook only needs to
refresh it with update files that it fetches from Exchange. These files
are generated daily by the OAB Generation Assistan and contain the changes that have
occurred since the last update. If Outlook has been offline for several
days, it needs to download all the daily updates it has missed to
update the OAB. A full download is required if Outlook 2003 SP2 (or
later) determines that more than half the total entries in the GAL have
been updated since the last download. Earlier versions of Outlook
required a full download when an eighth of the GAL had changed.
To
offset the potential for server overload, Microsoft uses LZX
compression for OAB update files and distributes binary patches only
for updated records rather than for complete records. Two files are
involved. The Data.oab file is a baseline file. The Binpatch.oab file
is generated daily and contains the differential changes from the
previous day (essentially, all the changes in the GAL in the past day).
To bring an OAB up to date, Outlook downloads all the versions of
Binpatch.oab that correspond to the days since the last update and
merges them into Data.oab. It then generates the new indexes to refresh
the OAB. Compression and binary updates are an effective mechanism to
manage OAB distribution for organizations of all sizes.
Figure 2
shows what you might see if you examine the directory where Exchange
holds the OAB files after they are generated. A file called Oab.xml
(the OAB manifest) tracks all the updates that are available, including
the full and differential files, templates used by Windows and
Macintosh clients, and metadata such as the compressed and uncompressed
file sizes.
When
Outlook begins to download the OAB files, it flags this fact as part of
its synchronization activity. If you use the Ctrl+Click key combination
on the Outlook icon in the system tray to view the client connection
status and then click the Local Mailbox tab, you’ll see the OAB
download progress.