Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756�
How to back up and restore the registry in Windows
Typically, messages accumulate in the �Messages awaiting directory lookup" queue because the advanced queuing engine cannot categorize the messages. You can increase diagnostic logging for the MSExchangeDSAccess and MSExchangeTransport services to collect more information. To do this, follow these steps:
- Click Start, click Run, type regedit, and then press ENTER.
- Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeTransport\Diagnostics
- Set all the categories under this registry subkey to 5.
- Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeDSAccess\Diagnostics
- Set all categories under this registry subkey to 5.
- Exit Registry Editor.
However, after you increase the diagnostic logging for the MSExchangeDSAccess and MSExchangeTransport service, the following events may be logged in the Application log:
Event ID: 8024
Source:ExchangeAL
Category: LDAP Operations
Description: LDAP Search Initial Page on directory DirectoryName at base 'DistinguishedName' was unsuccessful. Directory returned the LDAP error:[0x34] Unavailable
Event ID: 9004
Source: MSExchangeTransport
Category: Categorizer
Type: Error
Description: Categorizer encountered a hard error while processing a message. While processing User 'smtp:user@example.com', the function 'CPhatCat::HrIsRecipientInSameRG' called 'MDAGetInfo' which returned error code '0x80040920' (). A DSN has been generated.
Event ID: 9003
Source: MSExchangeTransport
Category: Categorizer
Type: Warning
Description: Categorizer is temporarily unable to process a message. While processing user 'smtp:user@domain.com', the function 'CPhatCat::CompleteUserMailDrop' called 'SetTargetServer' which returned error code '0xc0040559' (The categorizer encountered an error. The operation will be restarted.).
Event ID: 929
Source: MSExchangeTransport
Category: Routing Engine/Service
Type: Error
Description: Failed in reading Connector's DS Info Process Id: 8176 Process location: C:\WINDOWS\system32\inetsrv\inetinfo.exe ConnectorDN: DistinguishedName Hr:c004038a Attribute:[msExchSourceBridgeheadServersDN]
Event ID: 6004
Source: MSExchangeTransport
Category: Categorizer
Type: Warning
Description: The categorizer is unable to categorize messages due to a retryable error.
Event ID: 9035
Source: MSExchangeTransport
Category: Categorizer
Type: Warning
Description: Categorization of the message failed with a retryable error. Either some of the admin objects were renamed recently and changes were not picked or journaling was turned on for MDB (DistinguishedName) and the journal recipient's mailbox is deleted.
You can use any of the following methods to troubleshoot this issue.
Verify that the global catalog server is available
The Exchange Categorizer will connect to the global catalog server to perform LDAP queries. If the global catalog server is unavailable to perform LDAP queries, an event ID 8024 message may be logged in the Application log. Additionally, messages may remain in the "Messages awaiting directory lookup" queue.
To resolve this issue, make sure that the global catalog server is available for LDAP queries. To do this, follow these steps:
- Verify whether the CPU usage on the global catalog server is high.
The Exchange Categorizer must connect to the global catalog server to perform LDAP queries. If CPU usage on the global catalog server is high, messages in Categorizer may be processed very slowly. Alternatively, messages may not be processed. This causes messages to remain in queue.
If the CPU usage on the global catalog server is high, troubleshoot the global catalog server first. - Run the DCDiag tool to verify that the Exchange server and the global catalog server or domain controller can communicate as expected.
- Check the global catalog server assignment and the domain controller assignment. To do this, follow these steps:
- Start Exchange System Manager.
- Right-click the server object, and then click Properties.
- On the Directory Access tab, make sure that the global catalog servers and the domain controllers that are listed are correct according to the organization topology. Make sure that the global catalog servers and the domain controllers are available.
Note You can manually assign global catalog servers and domain controllers if all the global catalog servers and the domain controllers that are listed are unavailable. However, we do not recommend this.
Verify that the Exchange servers have sufficient permissions
You can use Exchdump.exe to check the permissions and configurations of the Active Directory objects that are related to Exchange transport.
For more information about the Exchdump.exe tool, click the following article number to view the article in the Microsoft Knowledge Base:
839116�
Overview of the ExchDump tool for Exchange 2000 Server and for Exchange Server 2003
If Exchange Server 2003 or Exchange 2000 Server computers do not have sufficient permissions to obtain the attributes of the recipients, messages may remain in the "Messages awaiting directory lookup" queue. Additionally, event ID 9004, 9003, 929 and 6004 messages may be logged in the Application log.
To resolve this issue, make sure that inheritable permissions are permitted to propagate to the Exchange Server 2003 or Exchange 2000 Server object to which you are trying to send messages. To do this, follow these steps:
- Start Exchange System Manager, and then locate the Exchange Server 2003 or Exchange 2000 Server object to which you are trying to send messages.
- Right-click the server object, and then click Properties.
- Click the Security tab, and then click Advanced.
- Click to select the Allow inheritable permissions from the parent to propagate to this object and all child objects. Include these with entries explicitly defined here check box, and then click OK. If you receive the following message, click Yes to continue:
Deny entries take priority over Allow entries
- Verify that the Allow inheritable permissions from parent to propagate to this object option is selected for each server that experiences this problem.
- Restart the Microsoft Exchange Routing Engine service and Simple Mail Transfer Protocol (SMTP) service.
Verify that the attributes of a user object are correct
There are several attributes of a user object that must be correct for messages to be categorized. If any of these attributes are incorrect, the message remains in the categorizer. And, no event ID messages are logged.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
281761�
Attributes required to route messages through the Categorizer
Verify that the message archive location is valid if message archiving is enabled
When you send a message to a recipient that resides in a mailbox store that has message archiving enabled, the server that first processes the message will generate the message to the archive recipient. If the mailbox or the public folder that you configured as the message archive recipient is no longer a valid location, the message may remain in the �Messages awaiting directory lookup� queue. Additionally, event ID 9035, 9003, 9004 and 6004 messages may be logged in the Application log.
Note Message archiving is also known as message journaling.
To resolve this issue, make sure that the archive recipient for mailbox stores has not been deleted from Active Directory. To determine the archive recipient for a mailbox store, follow these steps:
- In Exchange System Manager, expand the Servers container.
- Expand the Storage Group container, right-click the mailbox store object to look for message archiving, and then click Properties.
- On the General tab, view the account that appears immediately under the Archive all messages sent or received by mailboxes on this store check box. This is the account that is being used as the archive recipient.
Note Make sure that you verify the journal recipient for each mailbox store object.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
884996�
Messages remain in the "Messages awaiting directory lookup" SMTP queue in Exchange Server 2003 or in Exchange 2000 Server
Verify that the mailbox store on the SMTP bridgehead server is mounted
On the SMTP bridgehead server, make sure that the Information Store service is running and that the mailbox store is mounted. These conditions must be true because messages may have to be bifurcated if message archiving is enabled or a non-delivery report (NDR) is generated.
Note Sometimes one server is configured as both an SMTP bridgehead server and a front-end server.