Welcome to Offline address Book(OAB) multi part articles, In this Series, we are going to learn the complete details of OAB on How it works.
Let’s get in,
What is an Offline Address Book? Offline address book(OAB) is the Local Copy downloaded to the Outlook Client Machine from the Exchange Servers for the Local Queries of address resolutions when disconnected from Exchange Servers.
Why do we need an OAB? Ideally It helps to reduce the Exchange Servers Work Loads. From Outlook clients When Address queries happens, It will validate against the local Offline Address book before it reaches to Exchange servers and also helps in doing the offline search when disconnected.
Let’s Talk about the Offline address book in detailed,
In Exchange 2010 and previous versions of Exchange servers, Offline address book distribution was getting distributed using Public Folder Distribution and Web-Based Distribution and the Offline address book was done using the designated OAB Generation Server. If the server is down for some reason, clients will get problem with downloading the OAB till the server comes online or moved the OAB to another Server.
Over the years it got decent improvements and developments. From Exchange 2013 on wards, Offline address book is being distributed using the Web-based Distribution method only being said that, Public folder based Distribution is removed and OAG Generation has been moved to the disgnated Mailbox. Why this Change?. It helps in many ways. 1. Web-based distribution helps in, 1. Support for more concurrent downloads by client computers. 2. Reduced bandwidth usage. 3. More control over the OAB distribution points.
2. OAB Generation moved to an Arbitration Mailbox(SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}) which ideally helps to set High Availability, How? 1. Arbitration is a mailbox, you can move the mailbox to the Database enabled with multple copies of the DAG mode Enabled. So that the server goes down, the database gets moved the next server with that OAB Generation also gets moved to the next Server. so there is no dependency with one server and helps in reducing the downtime and single point of failure
OAB Version 4 only Supported OAB had many versions in the past, currently it supports only version 4, This version of the OAB is Unicode, and allows clients to receive differential updates, instead of always using full downloads.
All versions of Outlook clients that are supported by Exchange fully support OAB version 4.
Service Responsible for Offline Address Book(OAB) Generation: OAB Generation is taken care by the Mailbox Assistants Service. it allows OAB Generation to run or pause based on the workloads of the Exchange Servers. In eariler versions, It has been taken care by the Exchange System Attendant Service.
Okay. So far, we have seen the General information about the Offlien Address Book, Now let’s deepin to the process,
How Offline Address Book(OAB) Generation works?
OAB generation is being controlled by the mailbox assistant named OABGeneratorAssistant that runs under the Microsoft Exchange Mailbox Assistants service. OAB generation happens in a designated arbitration mailbox that has the OrganizationCapabilityOABGen value for the PersistedCapability property. An arbitration mailbox with this capability is also known as an organization mailbox. You can get the OAB Generating mailboxes using the below command,
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like “*oab*”}
By Default, Every 8 hours once OAB gets generated. If required we can change the schedule or manually enforce to update OAB. Will post them with images in upcoming articles.
As I mentioned earlier, An Arbitration Mailbox SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} is key stakeholder who is responsible to process the OAB Generation/updates of the available Offline address Books and also new Offline address Books gets created in the Exchange infra.
There should be only one mailbox configured for the OAB Generation. Why?. OAB Maintains the Unique identifier for the last update on the Outlook client done, based on that when it connects next time using that Unique identifier. If you configure multiple mailboxes, when the outlook Client gets Proxied/Redirected to the another Exchange OAB Generating Mailbox, it will not be having the last update time stamp, hence it will request for the Full Download of the Offline Address Book(OAB). so the clients will start downloading complete OAB data. if your organization is big and OAB is more than 100 MB, It will consume more network and Exchange Server Utilization due to which it always recommended to keep the only one mailbox across Organization.
Suppose you have multiple Exchange data center locations and users are distributed across the locations, you can create the Shadow Copies of the OABs so that network traffic can be avoided.
The OAB files are generated and stored in the designated Arbitration mailbox, so the destination for OAB download requests is the Mailbox server that holds the active copy of the organization mailbox. The OAB files are copied from the organization mailbox to %ExchangeInstallPath%ClientAccess\OAB\ for retrieval by clients. Clients never connect directly to this backend location. Client requests for the OAB are proxied by the Client Access (frontend) services on a Mailbox server to this backend location.
How OAB Distribution works? Clients are by default downloads OAB every 24 Hours once. Users also can manually download OAB whenever they want to download.
As I mentioned in the autodiscover article, OAB URLs are getting shared in the XML file to the clients. The URL will be as like https://EX2016.Windowstechpro.com/OAB.
The Client Outlook OAB Download process as follows, 1. By using Autodiscover call, OAB URLs are handed over to the Outlook client, and Outlook client connects to the Client Access (frontend) services on a Mailbox server.
2. The Client Access services on the Mailbox server that accepts the connection and performs the following steps: 1. Frond End Client access service Queries the Active Directory to find the organization mailbox which is responsible for generating the User’s the default OAB. The OAB specified for the mailbox database, or the OAB that’s specified for the mailbox.
2. Queries Active Directory again to find the mailbox database that hosts the organization mailbox for the OAB, and the Mailbox server that currently holds the active copy of the database.
3. Proxies the OAB download request to the identified Exchange Mailbox Server.
4. Retrieves the OAB files from the backend location %ExchangeInstallPath%ClientAccess\OAB\ and proxies them back to the client
.