Message Queuing could not access Active Directory and failed to compute routing path

Microsoft.MSMQ.2008.Rule.Alert.Event2188 (Rule)

Message Queuing could not access Active Directory and failed to compute routing path for messages sent to queue. Messages will wait in the outgoing queue until connection with Active Directory is restored.

Knowledge Base article:

Summary

Message Queuing could not access Active Directory and failed to compute routing path for messages sent to queue. Messages will wait in the outgoing queue until connection with Active Directory is restored.

Causes

Message Queuing was not able to join the domain or MSMQ Routing failed because of domain connectivity issues. This error might be caused by one of the following conditions:

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Stale objects in AD DS are preventing Message Queuing from joining the domain

To confirm the presence of stale computer objects:

The Computer does not have connectivity and cannot join a domain.

If your computer does not have network or domain connectivity, see the section titled “Contact Microsoft”

Appropriate permissions are needed to create and access objects

To confirm that the user who is installing Message Queuing is a domain user and is a member of the local administrator group:

If you determine that the user does not have the appropriate permissions, see the section titled "Grant appropriate permissions."

"

Resolutions

To resolve this issue, use the resolution that corresponds to the cause you identified in the Cause section. After performing the resolution, see the Verify section to confirm that the feature is operating properly

Cause

Resolution

Active Directory Domain Services has stale objects

Remove stale Active Directory objects

Appropriate permissions have not been granted

Grant appropriate permissions

The computer has no connectivity or is not joined to domain

Contact Microsoft

Remove stale Active Directory objects

Stale objects can prevent the MSMQ Service from operating properly. Deleting stale objects may solve this problem. However, deleting a computer object in Active Directory Domain Services (AD DS) can cause problems on the client computer. Before deleting the computer object, make sure that no services running on the client computer will be affected. In this case, deleting the Message Queuing Active Directory object will delete public queues on that computer.

You must have the Active Directory services tools installed in Role Administration tools under Remote Server Administration.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Confirm that Active Directory services and control components are installed

To confirm that Active Directory services and control components are installed properly:

Delete stale computer objects

To delete stale computer objects:

Grant appropriate permissions

Message Queuing may not be able to create Active Directory objects if the account it is running under does not have appropriate permissions. Check the following:

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Confirm that the user who is installing Message Queuing is a domain user and a member of local administrators group

To confirm that the user who is installing Message Queuing is a domain user and a member of the local administrators group:

Confirm that the proper Active Directory service tools are installed

To confirm that the proper Active Directory service tools are installed:

Grant the Message Queuing user account permission to modify child objects

If you have the appropriate permissions, use the following procedure to grant the Message Queuing user account permission to create and delete child objects. You must have the Active Directory services and control components installed in Role Administration Tools under the Remote Server Administration feature.

To grant Message Queuing user account permissions:

For more information about the correct access control settings, see your Active Directory documentation.

Contact Microsoft

If possible, consult with your domain administrator by providing the error description in the event.

If you continue to get this error, note any details in the event message, and then contact Microsoft Customer Service and Support (CSS). For information about how to contact CSS, see Enterprise Support ( http://go.microsoft.com/fwlink/?LinkId=52267).

Verify

Additional

If you continue to get this error, note any details in the event message, and then contact Microsoft Customer Service and Support (CSS). For information about how to contact CSS, see Support Options from Microsoft Services ( http://go.microsoft.com/fwlink/?LinkId=52267).

For more information, see Event ID 2188 ( http://technet.microsoft.com/en-us/library/dd337487(WS.10).aspx)

Element properties:

TargetMicrosoft.MSMQ.2008.Servers
CategoryAvailabilityHealth
EnabledFalse
Event_ID2188
Event Source$Target/Property[Type="Microsoft.MSMQ.2008.ServerRole"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Message Queuing could not access Active Directory and failed to compute routing path
Event Description: {0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.MSMQ.2008.Rule.Alert.Event2188" Enabled="false" Target="Microsoft.MSMQ.2008.Servers" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2188</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Microsoft.MSMQ.2008.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.2008.Rule.Alert.Event2188.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>