Microsoft KB Archive/924102

= The Recipient Update Service seems to slow down when you perform a rebuild operation in Exchange Server =

Article ID: 924102

Article Last Modified on 10/25/2007

-

APPLIES TO


 * Microsoft Exchange Server 2003 Standard Edition
 * Microsoft Exchange Server 2003 Enterprise Edition
 * Microsoft Exchange 2000 Server Standard Edition
 * Microsoft Exchange 2000 Enterprise Server

-



SUMMARY
This article describes factors that may cause the Recipient Update Service rebuild operation in Microsoft Exchange Server 2003 and in Microsoft Exchange 2000 Server to slow down. This article describes the objects that may require lots of time for the Recipient Update Service to evaluate. This article also discusses how to verify the Exchange Server filter and how to record the progress of the Recipient Update Service.



INTRODUCTION
When you perform a rebuild operation on the Recipient Update Service in Exchange Server, the operation that creates the Recipient Update Service may seem to slow down. This issue may occur if the following conditions are true:
 * There are many address lists.
 * The filter rules include more than 500 subfilters.



How to perform the rebuild operation on the Recipient Update Service
The following steps describe how to perform the rebuild operation on the Recipient Update Service. The steps also describe how the server that is running Exchange Server obtains the target objects that have to be evaluated by the Recipient Update Service.  Obtain information about the items that you want to be evaluated by the Recipient Update Service. These items include address lists, recipient policies, and system policies. Use the following filters to obtain the target objects that must be evaluated under the domain partitions.

Note In these filters,  is a variable that may differ, depending on the environment.   Use the following filter. This filter is set by default. (&(USNChanged>=xxx)(uSNChanged<=xxx)((mailNickname=*)))   Add the defined filter to the address list filter that uses the &quot;OR&quot; condition, as follows. (&(USNChanged>=xxx)(uSNChanged<=xxx)((|(mailNickname=*)(|(&(objectCategory=user)(extensionAttribute5=0001))(&(objectCategory=group)(extensionAttribute5=0001))(&(objectCategory=contact)(extensionAttribute5=0001)))))) Note You must do this because the (mailnickname=*) attribute is not included in the filter if you create the address list by using Active Directory Service Interfaces (ADSI) instead of by using Exchange System Manager. 

A queue of target objects is created. Locate the target objects in the queue that you obtained in step 2. Evaluate the objects that you obtained by using the following filters: <ul> Address list filter</li> Global address list filter</li> Recipient policy filter</li> System policy filter</li></ul> </li> Update the objects as required, according to the evaluation results.</li> Repeat steps 4 and 5 for all objects in the queue that are registered for evaluation by the Recipient Update Service.</li></ol>

Why the rebuild operation on the Recipient Update Service may take lots of time
When the update process obtains the target objects that must be evaluated from a domain partition, it may take lots of time to update the objects that must be evaluated. This issue occurs because all objects are obtained.

For example, the filter rules from each address list are added to the filter that is used to obtain the target objects for the Recipient Update Service evaluation if the following conditions are true:
 * Many address lists exist.
 * The (mailNickname=*) attribute is not included in the filter.

For example, you run this search by using the following complex filter. (&(USNChanged>=xxx)(uSNChanged<=xxx)((objectClass=*))) The (objectCategory=user) attribute and the (extensionAttribute5=0001) attribute are included in this filter. These attributes are called subfilters. Each subfilter is counted as one filter.

If the total number of subfilters is more than 500, you can run the search under the domain partition by substituting the simple filter rules in this filter.

This filter obtains all objects under the domain partition. Additionally, this filter obtains the valid objects for a mailbox and the valid objects for e-mail messages under the domain partition.

This occurs because the search is run without the (mailnickname=*) attribute. Instead, the search is run with the (objectClass=*) condition. Therefore, it may take lots of time to complete the rebuild operation on the Recipient Update Service.

Additionally, the rebuild operation on the Recipient Update Service updates the objects that are obtained in the same order in which they were obtained. The performance of the rebuild operation seems to be slow when valid objects for a mailbox and valid objects for e-mail messages are updated after some of these objects have been evaluated.

How to verify the Exchange Server filter
To verify the filter that Exchange Server uses during the rebuild operation on the Recipient Update Service, follow these steps:  Raise the diagnostics logging level in the MSExchangeAL component. For more information about how to do this, click the following article number to view the article in the Microsoft Knowledge Base:

822794 How to troubleshoot the Recipient Update Service by using the Application log in Exchange 2000 Server or in Exchange Server 2003

</li> Update the Recipient Update Service.</li>  Locate the following event in the Application log: Event Type: Information

Event Source: MSExchangeAL

Event Category: LDAP Operations

Computer:

Description: Searching directory  at base 'CN=Recipient Update Services,CN=Address Lists Container,CN=Microsoft,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC= ,DC=com' using filter '(&(objectCategory=msExchAddressListService)(!(IsDeleted=TRUE)))' and requesting attributes distinguishedName; objectGUID; LegacyExchangeDN; msExchADCGlobalNames; ObjectSID; ObjectClass; msExchMasterServiceBL; activationSchedule; activationStyle; msExchAddressListServiceLink; msExchDomainLink; msExchServer1AuthenticationCredentials; msExchServer1AuthenticationPassword; msExchEncryptedPassword; msExchServer1NetworkAddress; msExchExportContainers; msExchReplicateNow; msExchDoFullReplication; msExchServer1LastUpdateTime; msExchServer1HighestUSN; msExchServer1PageSize; msExchPollInterval; msExchServer1Flags; VersionNumber; msExchServer1HighestUSNVector; msExchProcessedSids; msExchDomainGlobalGroupSid; msExchDomainLocalGroupSid; msExchDomainGlobalGroupGuid; msExchDomainLocalGroupGuid; gatewayProxy. </li>  Determine whether the following target object is set to be evaluated. (&(USNChanged>=xxx)(uSNChanged<= xxx)((objectClass=*))) </li></ol>

Example of a filter that lightens the server load
When the replacement filter obtains the target object, modify the filter rules to include the (mailnickname=*) attribute in the address list.

For example, the following filter rule may be set in the address list. (|(|(&(objectCategory=user)(extensionAttribute5=0002))(&(objectCategory=group)(extensionAttribute5=0002)))(&(objectCategory=contact)(extensionAttribute5=0002))) In this case, add the (mailnickname=*) attribute by using the &quot;AND&quot; condition. The filter rule then appears as follows. (&(mailnickname=*)(|(|(&(objectCategory=user)(extensionAttribute5=0002))(&(objectCategory=group)(extensionAttribute5=0002)))(&(objectCategory=contact)(extensionAttribute5=0002))))

How to record the progress of the Recipient Update Service
You can record the detailed events of the Recipient Update Service in the Application log. To do this, set the diagnostic logging level of the MSExchangeAL component in the Properties dialog box on the Exchange Server server that is running the Recipient Update Service in Exchange System Manager.

When the operation on the object is completed, the following event is recorded: Event Type: Information

Event Source: MSExchangeAL

Event Category: Address List Synchronization

Event ID: 8167

Computer:

Description: Modified the object : 'CN= ,CN=Users,DC=contoso,DC=com'. DC=contoso,DC=com'

For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

246127 How to check the progress of the Exchange Recipient Update Service

253770 Tasks performed by the Exchange Recipient Update Service

296479 Requirements for disabling the Recipient Update Service

The order in which LDAP query results are returned in Active Directory
The results of an LDAP query in the Active Directory directory service are returned in the order of smallest value to largest value. The smallest value is returned first. Therefore, the objects that are evaluated in the Recipient Update Service are also returned in that order.

You can run the LDAP query by using the following filter rule. This filter rule is used by the Recipient Update Service. (&(uSNChanged>=1)(uSNChanged<=xxxxxx)((objectClass=*)))

Keywords: kbinfo kbexpertiseinter kbexpertiseadvanced kbhowto KB924102

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.