Fix for OAB Generation failing on CCR and SCC clusters

The failure of the offline address list to generate was the direct result of two separate issues.

 

The Windows 2008 shared storage clustering component has additional hooks into the operating system to manage shares created on shared storage. When programmatically creating shares on the cluster and then trying to generate the OAB would cause an exception. This was a result of cluster returning the full HResult for certain operations instead of the short code.

 

Now in Exchange 2007 SP1 RU5 we implement a code change to change the way that offline address lists are published on clustered servers. Originally the OAB generation process would publish the OAB information to \\NodeName\ExchangeOAB. The FDS service on the Client Access Servers would expect to copy the offline address list information from \\CMSName\ExchangeOAB. Due to the integration of shared folders and cluster in Windows 2008, a share created on shared storage cannot either programmatically or manually be scoped to the NodeName. The change implemented here now creates the share a \\CMSName\ExchangeOAB and then publishes the files to \\CMSName\ExchangeOAB. Client Access Servers will continue to attempt to copy files from \\CMSName\ExchangeOAB.

 

Problem: OAB Generation on a Windows 2008 Shared Storage Cluster with Exchange 2007 SP1 fails with the following errors:

 

Log Name: Application

Source: MSExchangeSA

Date: 5/12/2008 9:23:50 AM

Event ID: 9334

Task Category: OAL Generator

Level: Error

Keywords: Classic

User: N/A

Computer: Node-4.test.com

Description:

OALGen encountered error ffffffff while initializing the offline address list generation process. No offline address lists have been generated. Please check the event log for more information.

- Default Offline Address List

Event Xml:

<Event xmlns="https://schemas.microsoft.com/win/2004/08/events/event">

  <System>

    <Provider Name="MSExchangeSA" />

    <EventID Qualifiers="49152">9334</EventID>

    <Level>2</Level>

    <Task>13</Task>

    <Keywords>0x80000000000000</Keywords>

    <TimeCreated SystemTime="2008-05-12T13:23:50.000Z" />

    <EventRecordID>16392</EventRecordID>

    <Channel>Application</Channel>

    <Computer>Node-4.test.com</Computer>

    <Security />

  </System>

  <EventData>

    <Data>ffffffff</Data>

    <Data>Default Offline Address List</Data>

  </EventData>

</Event>

 

Log Name: Application

Source: MSExchangeSA

Date: 5/12/2008 9:23:50 AM

Event ID: 9109

Task Category: OAL Generator

Level: Warning

Keywords: Classic

User: N/A

Computer: Node-4.test.com

Description:

OALGen encountered an error ffffffff (internal ID 505068d) while generating address list '/o=Test/cn=addrlists/cn=oabs/cn=Default Offline Address List'. Check other logged events to see if this is a serious error.

- Default Offline Address List

Event Xml:

<Event xmlns="https://schemas.microsoft.com/win/2004/08/events/event">

  <System>

    <Provider Name="MSExchangeSA" />

    <EventID Qualifiers="32768">9109</EventID>

    <Level>3</Level>

    <Task>13</Task>

    <Keywords>0x80000000000000</Keywords>

    <TimeCreated SystemTime="2008-05-12T13:23:50.000Z" />

    <EventRecordID>16391</EventRecordID>

    <Channel>Application</Channel>

    <Computer>Node-4.test.com</Computer>

    <Security />

  </System>

  <EventData>

    <Data>ffffffff</Data>

    <Data>505068d</Data>

    <Data>/o=E-McMichael Home/cn=addrlists/cn=oabs/cn=Default Offline Address List</Data>

    <Data>Default Offline Address List</Data>

  </EventData>

</Event>

 

This occurs whether the generation process is spawned through update-offlineaddresslist or through a scheduled update. This also appears to stall both the file system publishing and public folder publishing of the offline address list and its updates.

 

Additional Information

The issue does not occur if the OAB is generated on local storage (disks not under control of cluster) or if the disk hosting the OAB is in maintenance mode.

 

The issue appears at this time to be related to how Windows 2008 clusters handle file share / file server resources.

 

The Fix

1. Install KB article - 955733 - Incorrect status codes that are returned in failover clusters may cause operations to fail on a Windows Server 2008-based computer: https://support.microsoft.com/default.aspx?scid=kb;EN-US;955733 This ensures that cluster returns the correct status codes where necessary.

2. Install Exchange Rollup 5 - https://www.microsoft.com/downloads/details.aspx?FamilyID=41ec35e7-79a0-4ecb-a644-1ece94178f9d&displaylang=en