DOCUMENT:Q268324 13-JUL-2001 [exchange] TITLE :XCLN: Corrupted Offline Address Books from Changes to PDN List PRODUCT :Microsoft Exchange PROD/VER:: OPER/SYS: KEYWORDS:kbExchange550preSP4fix kbOffice2000preSR2fix kbExchange550sp4Fix kbExchange2000SP1Fix ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Outlook 98 - Microsoft Outlook 2000 ------------------------------------------------------------------------------- SYMPTOMS ======== Outlook 98 for Microsoft Windows NT or Outlook 2000 for Microsoft Windows NT users who use the offline Address Book may not be able to send an e-mail message to a user in the offline Address Book. After the user sends the e-mail message, the user may receive non-delivery report (NDR) error messages that are similar to the following: Your message did not reach some or all of the intended recipients. Subject: Subject of the Message Sent: 6/18/00 2:00 PM The following recipient(s) could not be reached: Andersen, Amy on 6/18/00 2:00 PM The message was undelivered because the specified recipient postal address was incorrect MSEXCH:MSExchangeIS:SITENAME:SERVERNAME -or- Your message did not reach some or all of the intended recipients. Subject: Subject of the Message Sent: 6/27/00 2:51 PM The following recipient(s) could not be reached: 's/cn=DirectoryName' on 6/27/00 2:51 PM No transport provider was available for delivery to this recipent. This issue occurs when users perform incremental offline Address Book downloads rather than full offline Address Book downloads. CAUSE ===== This issue can occur if the parent distinguished name (PDN) list changes on the server. RESOLUTION ========== To resolve this problem: 1. Obtain the latest service pack for Exchange Server 5.5. 2. For Outlook 2000 clients, obtain SP 2 for Office 2000. NOTE: For Outlook 98 clients, contact Microsoft Product Support Services to obtain a fix. Visit the following Microsoft Web site at: http://support.microsoft.com/directory/default.asp To resolve this problem, obtain the latest service pack for Exchange Server 5.5. For additional information, please see the following article in the Microsoft Knowledge Base: Q191014 XGEN: How to Obtain the latest Exchange Server 5.5 Service Pack The English version of this fix should have the following file attributes or later: Component: Outlook 98 +----------------------------+ | File name | Version | +----------------------------+ | Emsabp32.dll | 5.5.2654.5 | +----------------------------+ | Emsmdb32.dll | 5.5.2652.94 | +----------------------------+ | Emsui32.dll | 5.5.2651.80 | +----------------------------+ | Mspst32.dll | 5.5.2651.85 | +----------------------------+ Component: Outlook 2000 +---------------------------+ | File name | Version | +---------------------------+ | Emsabp32.dll | 5.5.3142.0 | +---------------------------+ | Emsui32.dll | 5.5.3141.0 | +---------------------------+ | Mspst32.dll | 5.5.3138.0 | +---------------------------+ | Exsec32.dll | 5.5.3137.0 | +---------------------------+ | Contab32.dll | 9.0.0.4221 | +---------------------------+ | Pstprx32.dll | 9.0.3929.0 | +---------------------------+ | Bjablr32.dll | 1.0.3.26 | +---------------------------+ | Bjlogb32.dll | 3.2.0.26 | +---------------------------+ | Bjsrch32.dll | 1.0.3.26 | +---------------------------+ | Emablt32.dll | 1.0.3.26 | +---------------------------+ WORKAROUND ========== To work around this issue, perform a full offline Address Book download. STATUS ====== Microsoft has confirmed this to be a problem in Microsoft Outlook 98 and Microsoft Outlook 2000. This problem was first corrected in Exchange Server 5.5 Service Pack 4. MORE INFORMATION ================ There is an architectural limitation in the offline Address Book differential download mechanism. This section describes how the offline Address Book works and how this limitation is manifested. On the server, the Exchange Server system attendant creates an offline Address Book and places that offline Address Book in a public folder. To do this, the system attendant calls the Oabgen.dll file. This file contains all of the functions to create and update an offline Address Book. On the server, the offline Address Book is completely contained in an e-mail message as attachments. This e-mail message is placed in a public folder so that all clients can retrieve this e-mail message. To create the offline Address Book, the Oabgen.dll file scans all the entries in the global address list and builds the list from the global address list. In the offline Address Book, a PDN block is created that has all of the container names that have e-mail objects in the global address list. The following is an example of a PDN: /o=Organization/ou=Site/cn=Recipients An offline Address Book also contains relative distinguished names (RDNs). This is the user's directory name in the Exchange Server Administrator program. The following is an example of an RDN: /cn=TestUser The offline Address Book organizes a user by joining the RDN with the PDN, so that the user is actually the following: /o=Organization/ou=Site/cn=Recipients/cn=TestUser To put the two pieces together, there are pointers in the records that indicate that the address Test User is composed of the RDN at offset x, which is /cn=TestUser, and the PDN at offset y, which contains /o=Organization/ou=Site/cn=Recipients. When an offline Address Book generation is run, two messages are created in a public folder: a message that contains a full download and a message that contains the changes after the last full download message was created. If there are new containers in the global address list after the last full download message was created, the PDN block is updated alphabetically with the new entry, and the new RDN to the changes message is included. When this new RDN is added to the changes message, a pointer to the PDN block offset is included. If a user requests a differential download at this point, Outlook locates the changes message, and incorporates the changes into the current offline Address Book that is on the client. It is at this point that the limitation of the offline Address Book is manifested. Because the client only retrieves the changes message, and not the full download message, the client has an out of date PDN block. The PDN block that the client now has may not have a PDN for the new RDNs that were just merged, or if a container was removed, the PDN on the client still may contain that container. If a new user was just merged, the user's offline Address Book may point to a PDN block that does not exist. This incorrect pointer can cause NDRs if the user tries to send a message to that user. The only way to make the user's PDN block match the server's PDN block is to perform a full download. The full download uses the full download message from the public folder, and therefore obtains the correct PDN list. This enables future differential downloads to work with the updated PDN block. This offline Address Book works correctly until the container structure changes. Offline Address Book corruption can appear somewhat random because the PDN block is sorted alphabetically. If an entry is added to the PDN block, old pointers in the user's offline Address Book point to a totally incorrect place in the PDN block. Similarly, if an entry is removed from the PDN list, the pointers are incorrect. What the Fix Does ----------------- Microsoft has developed a resolution for the preceding issue. In this fix, both the server and the client have been modified. This section describes how this fix addresses this issue. On the Server: On the server, the Oabgen.dll file has been modified so that if the PDN list must be modified, the Oabgen.dll file does not post a changes message. This choice leverages behavior that the client exhibits if the changes message is absent, which is explained in the following section. On the Client: On the client, the Emsabp32.dll file has been modified to locate one of the following registry keys: HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\Exchange Provider Value: Allow Full OAB Prompt Type: REG_DWORD Data: 0 is disabled, 1 or nonzero is enabled HKEY_CURRENT_USER\Software\Microsoft\Exchange\Exchange Provider Value: Allow Full OAB Prompt Type: REG_DWORD Data: 0 is disabled, 1 or nonzero is enabled NOTE: The HKEY_CURRENT_USER value overrides the HKEY_LOCAL_MACHINE value if both values are present. If either of the preceding registry keys are enabled, a user requests a differential download, and the client cannot find the changes message in the public folder, a dialog box is displayed that contains the following text: Outlook is about to download a full version of the offline Address Book. Would you like to continue? The user can click Yes or No in this dialog box. If the user clicks No, nothing is downloaded, and the user can continue to use the current offline Address Book. This behavior is necessary to ensure that if users are connected over a slow link, those users can stop a full download from occurring. This way, a user can schedule a full download when a full download is convenient. If the Emsabp32.dll file does not find the registry keys, or the registry values are set to zero, Outlook reverts to the default behavior of the Emsabp32.dll file, which downloads the full offline Address Book if the changes message is not found. Also, there is no indication to the user that a full download is in progress. In some cases, a full offline Address Book download can take several hours. If the user clicks Yes in the dialog box, a full offline Address Book is downloaded. This keeps the user's PDN list up to date with the server's PDN list. Additional query words: OAB GAL ====================================================================== Keywords : kbExchange550preSP4fix kbOffice2000preSR2fix kbExchange550sp4Fix kbExchange2000SP1Fix Technology : kbOutlookSearch kbOutlook2000Search kbOutlook98Search kbZNotKeyword3 Version : : Issue type : kbbug Solution Type : kbfix ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2001.