Friday, February 8, 2013

You Down With OAB - Working Through Offline Address Book Issues

Working Through Offline Addres Book Issue in Exchange 2007 and Exchange 2010

Tools with harmony
Mike drop a load on 'em

OAB, how can I explain it
I'll take you frame by frame it
To have y'all jumpin' shall we singin' it
O is for Offline, A is for Address - scratchin' temple
The last B...well...that is that simple
It’s Book, another way to find your email addy
It’s used by Outlook in cached mode

You get on occasion a full download
As a game 'n it seems I gotta start to explainin'
Bust it
You ever had a case that said where’d Sally go?
You get the name and number and then you feelin' real mellow

You generate the update and tell them to download
You close out, wait a day, she's still not displaying
Then you call up and it's the mailbox or bad address
It throws an Error, E to the R to the R to the O to the R
It's just complains about a missing attribute (Boy, that's what is scary)
It's OAB, time other people's what you get it
There's no room for investigation, there’s just time to generate it
How many Admins out there know just what I'm gettin' at
Who thinks it's wrong 'cos I'm splittin' and co-hittin' at
Well if you do, that's OAB and you're not down with it
But if you don't, here's your membership

You down with OAB(Yeah you know me) 3X
Who's down with OAB
You down with OAB (Yeah you know me) 3X
Who's down with OAB

We’ve had this question come up… A LOT…

“Susie Q joined the company yesterday, but she’s not showing in Outlook. I can see her in OWA. What’s going on”

Here’s the scoop

The OAB is generated on a schedule. By default this is once a day in the early hours. Each CAS is configured by default to poll (PollingInterval) the generating server every 480 minutes.

Outlook will download an update of the OAB given the following conditions: (Thanks Tim L.)

1.           When Outlook first opened and the initial Send/Receive is performed

2.           Every 24-hours when Outlook is left running

3.           When manually triggered by a user

Can you see how Susie Q could be missing? An example…


·         OAB is generated at 6am

·         CAS Polling is set to the defaults (480 minutes)


Day 1 - 6am – OAB Generated

Day 1 – 7am – User 1’s Outlook downloads OAB from CAS

Day 1 – 8am – CAS downloads updates

Day 1 – 9am – Susie Q added to Exchange (Displayed in Global Address List)

Day 1 – 4pm – CAS Downloads updates

Day 1 – 5pm – User 2’s Outlook downloads OAB from CAS

Day 2 – 12am – CAS Downloads updates

Day 2 – 6am – OAB Generated (includes Susie Q)

Day 2 – 7am – User 1’s Outlook downloads OAB from CAS (includes Susie Q)

Day 2 – 8am – CAS downloads updates (includes Susie Q)

Day 2 – 9am – User 1 attempts to find Susie Q in Outlook… She is displayed in Outlook

Day 2 – 9am – User 2 attempts to find Susie Q in Outlook… 404 Not Found (well… not really 404, but you get the idea)

Day 2 ….

Day 2 – 5pm – User 2’s Outlook downloads OAB from CAS (includes Susie Q)


Whew… too many lines… to sum that all up… a new user may not show up in outlook for 24-48 hours. You might be asked, “Can we do anything to fix it?” To this, we answer, “Well, duh…”


1.    Generating Server - The schedule for generating the OAB can be modified to your heart’s content. The modifications really depend on the requirements of the business. Is there a lot of churn throughout the day? How often are users created? How often are mailboxes/contacts updated with new information. We’ve set schedules for every 4 hours and sometimes down to every 2 hours.

2.    CAS - Modify the Polling Interval on each CAS to shorten the gap between the generation and the CAS downloads. There’s no point in changing the generation schedule to be every 2 hours, if you leave the defaults on the CAS (8 hours).

a.    To see the current interval – run this command
Get-OABVirtualDirectory |Select Identity, PollInterval

b.    To change the interval – run this command
Get-OABVirtualDirectory| Set-OABVirtualDirectory –PollInterval <minutes>

3.    Outlook… you’re stuck… sorry…

Let’s talk about Offline Address Books (OAB) and somethings that can go wrong and what can be done to fix it.

Exchange 2007 had a “special” way to handle the OAB generation when it was hosted on a CCR. A registry key buried deep in the HKLM that listed which node was authorized to generate the OAB. Now, this may seem silly, but it does have its uses. Here’s what I’m talking about,

·         The CCR fails over to the secondary node either due to maintenance or actual failure.

·         You didn’t pay attention nor did you perform due diligence to make sure everything was active on the primary node after maintenance was over

The secondary node attempts to generate the OAB, but fails due to the Reg Key and generates a Warning in the Application event log (Event 9395 Sent by MSExchangeSA).

You now have two major options IF you are paying attention.

1.    Find a time to fail the CCR back to the primary node

2.    Modify the registry key to allow the current node generate the OAB

a.    You can modify this manually by opening regedit, navigate to the key (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeSA\Parameters\{ClusterMailboxServerName}\ ) and change EnableOABGenOnThisNode to the current node name.

b.    Once you change the regkey, you need to generate an update and make sure the changes are pushed to the CAS for download

                                                  i.    Open Exchange Management Shell

                                                 ii.    Run Get-OfflineAddressBook|Update-OfflineAddressBook

                                                iii.    Run Get-ClientAccessServer|Update-FileDistributionService –Type OAB

If you’re NOT paying attention… your users will start to notice why Susie Q. isn’t showing up in Outlook even though she started two days ago… Lucy, you got some 'splainin' to do!

For Exchange 2010 – Update the OAB, and then check the Application event log for events from MSExchangeSA.

·         Event 9107 – The OAB has finished generating

·         Event 9320 – “OABGen could not generate full details for some entries in the offline address list for address list '\Global Address List'.  To see which entries are affected, set event logging for the offline address list generator to at least medium.”

·         Event 9395 – See above for Exchange 2007 – the current CCR node can’t generate the OAB.

If you get Event 9320, you will need to turn up diagnostic logging
Set-EventLogLevel -Identity "MSExchangeSA\OAL Generator" -Level Medium

Make sure that you change this back to Low once you are done troubleshooting
Set-EventLogLevel -Identity "MSExchangeSA\OAL Generator" -Level Low

From the Errors and Warnings that are generated in the logs, you should be able to determine the best course of action to take. Here are some examples that I’ve run across


Example 1

Log Name: Application
Source: MSExchangeSA
Date: 11/17/2011 2:27:10 AM
Event ID: 9325
Task Category: (13)
Level: Error
Keywords: Classic
User: N/A
Computer: SERVER
OABGen will skip user entry 'Project Members' in address list '\Global Address List' because the SMTP address '' is invalid.
- \Default Offline Address Book

Resolution – There was no Email Address listed or it was incorrect in the user object in Active Directory Users and Computers. Update the Email Address property to match the PrimarySMTPAddress property listed in Exchange. A quick check on this is to run this command

Get-mailbox <user name>|Select Identity, WindowsEmailAddress, PrimarySMTPAddress

If those do not match, the user will be excluded from the OAB update. This does NOT prevent the OAB from generating.

Example 2

Log Name:      Application

Source:        MSExchangeSA

Date:          9/21/2012 2:32:52 PM

Event ID:      9331

Task Category: (13)

Level:         Error

Keywords:      Classic

User:          N/A

Computer:      SERVER


OABGen encountered error 80040115 (internal ID 50101f1) accessing the public folder database while generating the offline address list for address list '/'.


Resolution – The  OAB was being distributed through Public Folders (a requirement for older versions of Outlook) and the public folder database was dismounted. There were two fixes to this, the first was to find the PF database and to make sure it was mounted. The second is more intensive since the PF database had been dismounted and deleted due to a migration, a new OAB was created and configured as the default for all the users.

No comments:

Post a Comment