Exchange 2000 Server's Offline Address Book (OAB) is an invaluable tool for road warriors and other users who spend a considerable amount of time disconnected from the network. Surprisingly, administrators don't have to do a lot of work to provide this tool to users. You just need to teach your users how to download the OAB from their clients, and you need to make sure that Exchange 2000 is generating and replicating the OAB to a sufficient number of servers. To accomplish these tasks, you need to know what the OAB contains and the various OAB download options. You also need to know what happens behind the scenes—how Exchange 2000 generates and stores the OAB and what happens when a client requests an OAB download. Finally, you need to know how to set up OAB replication.
What the OAB Contains
The OAB is a snapshot of an Active Directory (AD) store that Messaging API (MAPI) clients (primarily Outlook) download to enable offline validation of email addresses. Users typically don't perceive any practical differences between the OAB and the online Global Address List (GAL), except perhaps that the OAB is a slimmed-down version of the GAL. Both the OAB and the GAL originate from AD. The AD store holds hundreds of attributes for accounts. The OAB doesn't hold all this data—if it did, Outlook clients would have to download a huge file. Instead, the OAB contains only the data users need to address messages offline. If a user opts to have the client download all possible data, the OAB contains the information that appears on the General, Phone/Notes, and E-mail Addresses tabs of the user's Properties dialog box. However, the OAB doesn't contain any data that depends on pointers to other AD objects. For example, the OAB doesn't include data about hidden recipients or data about distribution group membership. Distribution groups are collections of pointers to other user, contact, and group objects. Distribution group membership is probably the feature users miss most when they work with the OAB.
Table 1 lists the six files that form the OAB and describes each file's purpose. These files are from the OAB that I use at Hewlett-Packard (HP). The 190,638KB of data in these six files represents about 275,000 entries (i.e., mail-enabled accounts, contacts, and groups) in the HP GAL. Outlook clients download compressed versions of the OAB files to minimize network demand. Typically, the compressed files are roughly half the size of the files on disk, but even so, fetching this data can take a long time if the OAB is large or if clients download the OAB across a slow dial-up connection.
Within the OAB, Exchange 2000 (as well as all other versions of Exchange) use distinguished names (DNs) in legacy format (e.g., /O=HP/OU=Central/CN=Recipients/CN=Tredmond) rather than AD format to identify objects. Exchange writes the DNs into message headers after it validates the addresses. Using DNs in this way might seem strange, but this approach allows the display names of users, contacts, and groups to change without rendering OAB entries invalid. Using the legacy format might also seem strange, but this format lets Microsoft maintain backward compatibility not only in the OAB but also in MAPI profiles. This format also lets users reply to messages sent from older servers.
The legacyExchangeDN attribute makes this system possible. This attribute stores the legacy-format DNs for AD objects and participates in address validation through the name-resolution process. Therefore, when an Outlook client reconnects after creating offline messages, Exchange 2000 uses the legacyExchangeDN attribute to revalidate the addresses. However, if you've never used Exchange Server 5.5 (or earlier) in your Exchange organization, Exchange 2000 doesn't use the legacyExchangeDN attribute. Instead, Exchange 2000 uses the SMTP address format, which is the default format for Exchange 2000 and later.
The OAB Download Options
To access the OAB download options in Outlook XP, users simply need to select Send/Receive on the Tools menu, then click Download Address Book. (In Outlook 2000, users will find the Download Address Book option under Synchronize on the Tools menu.) Figure 1 shows an example of the dialog box that appears. In the Information to download section, users can select the amount of data they want to download. If users want all possible information, they need to select Full Details. If users want to minimize the amount of data downloaded, they need to select No Details. The No Details option, however, makes the OAB much less useful. Although users can still validate email addresses, other data—such as the X.509 certificates that contain public keys for users registered for advanced security—is unavailable.
Unless an OAB is corrupted or hasn't been updated in a long time, users typically don't need to download the complete OAB. Instead, they can select the Download changes since the last Send/Receive check box. When a user selects this option, the Outlook client downloads a smaller file that contains the updates, then applies those updates to the local OAB files. However, the Outlook client always downloads a full copy of the OAB if changes have been made to more than 6 percent (approximately) of the total directory entries since the most recent full download.
Outlook clients must use an OAB version that's compatible with the server that holds the users' mailboxes. So, for example, if Mary's mailbox is on an Exchange 2000 server and Larry's mailbox is on an Exchange 5.5 server, the Outlook client automatically downloads the Exchange 2000 OAB for Mary and the Exchange 5.5 OAB for Larry.
Outlook XP introduces Send/Receive groups, which let users define how they want to synchronize their offline folders with Exchange. When users create these definitions, they can specify whether they want the OAB downloaded. The default behavior is for Outlook XP to download a new copy of the OAB each time synchronization occurs. Although this default behavior ensures that the OAB is up-to-date, synchronization takes a lot longer. Thus, if your users have Outlook XP, have them review the default Send/Receive group settings to make sure those settings are what they want. I like to change the default functionality by making the OAB download an explicit action, so I define a special Send/Receive group that includes the OAB. An alternative approach is to periodically update the OAB manually by selecting Tools, Send/Receive, Download Address Book.
As with other synchronization operations, Outlook XP and Outlook 2000 download the OAB with a background thread, so users can continue working during the download. Earlier Outlook versions devote all their energy to the download, so users can't do anything else.
What Happens Behind the Scenes
In an Exchange organization, one selected server generates, or builds, the OAB and stores it in a system public folder. By default, the selected server is the first server installed in an Exchange organization, but you can move the OAB to any server you like. A component called OABGen that runs inside the System Attendant process builds the OAB according to the schedule that the Default Offline Address List specifies. Most companies generate an update nightly.
You can use Exchange System Manager (ESM) to change the OAB generation schedule by right-clicking Default Offline Address List and selecting Properties. As Figure 2 shows, you can also change the OAB server and include other address lists. (The default is to use the GAL.) You can force an immediate OAB generation by right-clicking the Default Offline Address List and selecting the Rebuild option. This option comes in handy if you find that the public folder doesn't contain any OAB data (some bugs have caused this problem in the past) or you've added a large amount of new directory entries and want to generate a fresh OAB.
The System Attendant generates the OAB files as messages (with attachments) in a public folder called OAB Version 2. (Version 2 indicates that an earlier version exists, but the earlier version is now obsolete. You need the earlier version only if you have to support Exchange 5.0 and Exchange 4.0 servers.) The public folder holds two messages: One message contains an OAB with full details, and the other message contains an OAB with partial details. In addition, each message includes a file that contains the most recent full build of the complete OAB and a file that holds all the changes since the most recent full build.
When Outlook clients request an OAB download, Exchange 2000 provides either the full-details OAB message if the user has selected the Full Details download option, or the partial-details OAB message if the user has selected the No Details download option. Next, the Outlook client downloads the message and creates a set of temporary files in the same directory that stores the OAB files. If the user selected the Download changes since the last Send/Receive check box, the client downloads the OAB message into temporary files in the local OAB directory (typically \documents and settings\username\local settings\application data\microsoft\outlook), decompresses the information, and applies changes to the local OAB files. If the user didn't select that check box or if more than 6 percent of the total directory entries changed, the client downloads the message into the local OAB directory, then decompresses the data. Finally, Outlook renames the files to become the OAB. Take, for example, the file that contains the OAB user details. Outlook downloads this file to details.tm_, decompresses to details.tmp, then renames it to details.oab.
How to Set Up OAB Replication
If you have multiple servers in your Exchange organization, you'll probably want to create copies of the OAB on more than one server so that users can connect to a local server to fetch a copy of the OAB. Exchange 2000 uses standard public folder replication to replicate copies of the OAB folder to different servers around the organization. To minimize network traffic and speed client downloads, you can replicate copies of the OAB to a server in each administrative group. To view the current replication status in ESM, right-click Public Folders under the Folders directory, then select View System Folders. Expand OFFLINE ADDRESS BOOK, and right-click the o=org/cn=addrlists/cn=oabs/cn=Default Offline Address List folder, which is the internal pointer to the OAB Version 2 folder. Select the Replication tab, which Figure 3 shows, to view the current public folder stores to which Exchange 2000 is replicating the OAB. If necessary, use the Add button to add another server to the replication list. Replication typically proceeds at the same schedule used for other public folders.
In Figure 3, the two other folders under OFFLINE ADDRESS BOOK are legacy versions of the OAB that Exchange 5.5 sites generated. Exchange 2000 generates one OAB per organization, whereas previous versions generate one OAB per site. After an administrative group is fully migrated to Exchange 2000, you can safely remove the OAB for the original Exchange 5.5 site.
A Valuable and Undemanding Tool
Providing the OAB to users doesn't require much work. Yet, those users who spend a lot of time disconnected from the network will find the OAB an invaluable tool.