XCLN: Using CDO to Search the Exchange Global Address List for CdoPR_MHS_COMMON_NAME is Slow

ID: Q225500


The information in this article applies to:
  • Microsoft Exchange Server, version 5.5


SYMPTOMS

When using CDO to find entries in a large Exchange Server global address list (GAL) using the property CdoPR_MHS_COMMON_NAME, the operation can take a long time to complete. The CdoPR_MHS_COMMON_NAME property is sometimes referred to as the "alias" or "mailbox" name.

Consider the following Visual Basic code-fragment:
(Assume that the MAPI session is already established, and that NameToSearch contains a string name).


Dim objSession As MAPI.Session
Dim objAddrEntFilt As MAPI.AddressEntryFilter
Dim objAddressEntries As MAPI.AddressEntries
Dim objAddressEntry As MAPI.AddressEntry

Set objAddressEntries = objSession.AddressLists("Global Address List").AddressEntries
    
objAddrEntFilt.Fields.Add (CdoPR_MHS_COMMON_NAME), NameToSearch
        
Set objAddressEntry = objAddressEntries.GetFirst 
The objAddressEntries.GetFirst method may take a long time to execute based on the size of the global address list.


CAUSE

With respect to the AddressEntryFilter object, the platform SDK currently documents the following:

For fields of data type String, the restriction type is RES_CONTENT with fuzzy level options FL_SUBSTRING, FL_IGNORECASE, and FL_LOOSE. However, the following MAPI properties are compared using FL_PREFIX instead of FL_SUBSTRING:

PR_ACCOUNT
PR_BUSINESS_ADDRESS_CITY
PR_COMPANY_NAME
PR_DEPARTMENT_NAME
PR_DISPLAY_NAME
PR_GIVEN_NAME
PR_OFFICE_LOCATION
PR_SURNAME
PR_TITLE
Because CdoPR_MHS_COMMON_NAME (PR_MHS_COMMON_NAME) is not listed, a search (restriction) using this MAPI property will result in a restriction type of RES_CONTENT with the fuzzy level options FL_SUBSTRING, FL_IGNORECASE, and FL_LOOSE. These fuzzy level options result in an inefficient (wildcard type of) search mechanism, and it is recommended that searches for MAPI properties not using FL_PREFIX be avoided.


RESOLUTION

A modification was made to Cdo.dll to treat PR_MHS_COMMON_NAME as it does PR_ACCOUNT (and the other MAPI properties listed above) which results in an efficient FL_PREFIX search.

To resolve this problem, obtain the latest service pack for Exchange Server version 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: Cdo.dll

File name Version
Cdo.dll 5.5.2580.0


WORKAROUND

Extended MAPI could be used instead of Cdo.dll providing more control for the creation of restrictions.


STATUS

Microsoft has confirmed this to be a problem in Microsoft Exchange Server version 5.5. This problem was first corrected in Exchange Server 5.5 Service Pack 3.

Additional query words:

Keywords : exc55 EXC55SP3Fix
Version : winnt:5.5
Platform : winnt
Issue type : kbbug


Last Reviewed: September 28, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.