Offline Address Book will not generate after migration to Exchange 2010
Hi Guys,
I've been pulling my hair out for days now, let me see if I can describe my problem.
Basically, we are 90% of the way through migrating to Exhcnage 2010 from 2007. Ever since I moved the OAB (or OAL now in 2010) to the new server, I have been getting these errors (this is with logging set to expert)
First I get the logs saying it is starting
Then I get a whole bunch (which are aparently normal) the last being:
Log Name: Application
Source: MSExchangeSA
Date: 28/06/2010 8:46:42 a.m.
Event ID: 9359
Task Category: (13)
Level: Warning
Keywords: Classic
User: N/A
Computer: <server name>
Description:
OALGen truncated or dropped properties for entry 'Joe Tsang' in address list '\Global Address List' because they exceeded the configured size limits for the version 4 offline address list. The affected MAPI ids are: 8008.
- \Default Offline Address Book
I get about 60 or so of these, and then I get:
Log Name: Application
Source: MSExchangeSA
Date: 28/06/2010 8:46:42 a.m.
Event ID: 9339
Task Category: (13)
Level: Error
Keywords: Classic
User: N/A
Computer: <server name>
Description:
Active Directory PDC returned error 8004010e while generating the offline address book for '\Global Address List'. The last recipient returned by the Active Directory was 'Joe Tsang'. This offline address book will not be generated.
- \Default Offline Address Book
And:
Log Name: Application
Source: MSExchangeSA
Date: 28/06/2010 8:46:42 a.m.
Event ID: 9330
Task Category: (13)
Level: Error
Keywords: Classic
User: N/A
Computer: <server name>
Description:
OABGen encountered error 8004010e (internal ID 5001697) accessing Active Directory PDC for '\Global Address List'.
- \Default Offline Address Book
And finally:
Log Name: Application
Source: MSExchangeSA
Date: 28/06/2010 8:46:42 a.m.
Event ID: 9126
Task Category: (13)
Level: Error
Keywords: Classic
User: N/A
Computer: <server name>
Description:
OABGen encountered error 8004010e while calculating the offline address list for address list '\Global Address List'. This offline address list will not be available for client download.
- \Default Offline Address Book.
Now I have spent a-l-o-t of time researching this, and it seems to be an issue going way back to Exchange 2003, and to do with Active Directory corrupt records (specifically the Manager, Secuatary and HomeMDB and ClientMDB values). I ran a tool that
was reccomended by Dave Goldman's blog that let me export the entire AD Database (and the correlating values that may be causing the issue) and after manually sifting through 14000 records I concluded that there are no malformed, null or corrupt values in
any of those fields or that I lost my mind half way through and I missed them.
I have also tried:
1. Running OABInteg and the proxytest and alltests returns completely normal results.
2. Used the MAPI tool to open up my current OAB and manually checked the previous and following 50 records (as the OAB is generated in bunches of 50) and have found nothing.
3. I have completely remade the OAB (more than once) and get the exact same result. I have also tried using both the web and public folder distribution methods.
The only thing I can find that may help me in this is a mysterious tool developed by the Illumiati branch of Microsoft called "NSPITool" that apparently will in three easy steps tell me where the malformed values are in my active directory and let me resolve
it. However this tool is aparently only available via PSS and is something like 600 euros, and i'd rather try post here first before contacting MSPSS.
Any help would be appreicated!!
Gareth
June 28th, 2010 12:51am
On Sun, 27 Jun 2010 21:51:35 +0000, Gareth Edward Jones wrote:
[ snip ]
>I have also tried: 1. Running OABInteg and the proxytest and alltests returns completely normal results. 2. Used the MAPI tool to open up my current OAB and manually checked the previous and following 50 records (as the OAB is generated in bunches of
50) and have found nothing. 3. I have completely remade the OAB (more than once) and get the exact same result. I have also tried using both the web and public folder distribution methods. The only thing I can find that may help me in this is a mysterious
tool developed by the Illumiati branch of Microsoft called "NSPITool" that apparently will in three easy steps tell me where the malformed values are in my active directory and let me resolve it. However this tool is aparently only available via PSS and is
something like 600 euros, and i'd rather try post here first before contacting MSPSS.
>
>Any help would be appreicated!!
Rather than dumping everything with LDIFDE I suppose you could try
scripting those checks. I don't know that you'll be any more
successful with a script than you were just eye-balling all that data,
but at least the script is something you can repeat and expand on.
Dave Goldman points out "This doesnt mean that there couldnt be
more" than the four attributes involved in this problem. I'd rather be
able to add additional checks to a script than to repeatedly scan
large list of text.
---
Rich Matheisen
MCSE+I, Exchange MVP
--- Rich Matheisen MCSE+I, Exchange MVP
Free Windows Admin Tool Kit Click here and download it now
June 28th, 2010 3:51am
Rich,
I did think about that, and I tried dumping everything out and searching for records that contained the title value i.e. "Manager:" but with a blank value afterwards. Not really sure how to script a check for malformed values as i'm not entirely
sure what a malformed value would look like (as I cant find any examples anywhere).
I could find values using this method when I faked the data, but on the real thing I couldnt spot anything.
Any ideas on how to script something better than searching for blank / null values?
Thanks
Gareth
June 28th, 2010 4:53am
On Mon, 28 Jun 2010 01:53:18 +0000, Gareth Edward Jones wrote:
>
>
>Rich,
>
>I did think about that, and I tried dumping everything out and searching for records that contained the title value i.e. "Manager:" but with a blank value afterwards. Not really sure how to script a check for malformed values as i'm not entirely sure
what a malformed value would look like (as I cant find any examples anywhere).
The "manager" property contains a distinguishedName that should be
usable (i.e. it should refer to a user in the AD). The same is true (I
think) of the secretary property.
The exchange properties should "point" to objects in the Confoguration
naming contxt of the AD.
>I could find values using this method when I faked the data, but on the real thing I couldnt spot anything.
>
>Any ideas on how to script something better than searching for blank / null values?
Something along these lines (Powershell) would work:
$u = get-mailbox $username
$ua = [ADSI]("LDAP://" + $u.distinguishedname)
$mgr = $ua.manager
$umgr = get-mailbox $mgr
There's no error checking in there! If the user doesn't have a manager
you wouldn't want to try using the empty value to get the manager's
user object. :-)
In other languages (like Perl) you can use ADSI and check to see if
the property value is defined (which doesn't necessarily mean it has a
value). I'm not sure if that sort of checking can be done with
Powershell.
---
Rich Matheisen
MCSE+I, Exchange MVP
--- Rich Matheisen MCSE+I, Exchange MVP
Free Windows Admin Tool Kit Click here and download it now
June 28th, 2010 6:54am
Gareth, Ive been following your posts all over the internet. Have you found a resolution yet?
August 19th, 2010 11:17pm