The queue that is indicated in the event does not have a correctly formed URL-style queue name in an MSMQ SFD mapping file.
The following are examples of valid name formats:
HTTP://ComputerAddress/msmq/PublicQueue
HTTP://ComputerAddress/msmq/private$\PrivateQueue
HTTPS://ComputerAddress/msmq/PublicQueue
HTTPS://ComputerAddress/msmq/private$\PrivateQueue
Note: In these examples, ComputerAddress can be specified as the name, Hypertext Transfer Protocol (HTTP) URL, or IP address that is associated with the destination computer.
To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.
To fix the queue name:
In Windows Explorer, navigate to %windir%\System32\msmq\Mapping.
Open the desired mapping file. Note that mapping files are .xml files.
Locate the queue that is indicated in the event, and then modify the name so that it is properly formatted.
Target | Microsoft.MSMQ.2003.Queue | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.MSMQ.2003.Rule.Alert.Event2161" Enabled="true" Target="Microsoft.MSMQ.2003.Queue" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Host/Property[Type="MSMQ!Microsoft.MSMQ.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2161</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[2]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="MSMQ!Microsoft.MSMQ.Queue"]/PathName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.2003.Rule.Alert.Event2161.AlertName"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>