The Message Queuing service cannot start due to internal private queue problem.
To backup and restore Message Queuing messages using a command line
mqbkup {-b folderpath | -r folderpath | -c msmq_resource_name | -?}
where:
-b folderpath backs up the files to the specified folder,
-r folderpath restores the files from the specified folder,
-c msmq_resource_name specify the name of the clustered msmq resource
-? displays help for the utility.
This problem can be caused because a file in the MSMQ\Storage\LQS directory is corrupted. This directory contains the definitions of all private queues in the machine.
Restore MSMQ
Membership in the local Users group, or equivalent, is the minimum required to complete this procedure.
To restore MSMQ you must have performed at some point a backup of the MSMQ.
Before restoring messages, you must close Control Panel and all Message Queuing applications or any application that holds open a registry key handle to the HKLM\Software\MSMQ\Parameters registry key. Such applications typically include the Computer Management console if the Message Queuing snap-in is loaded, the MSMQ trigger service, the Message Queuing service, and some third party applications.
At the command prompt, type the following, and then press ENTER.
mqbkup {-b folderpath | -r folderpath | -c msmq_resource_name | -?}
Target | Microsoft.MSMQ.2003.Server | ||
Category | AvailabilityHealth | ||
Enabled | False | ||
Event_ID | 2020 | ||
Event Source | $Target/Property[Type="MSMQ!Microsoft.MSMQ.ServerRole"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
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.Event2020" Enabled="false" Target="Microsoft.MSMQ.2003.Server" 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>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="MSMQ!Microsoft.MSMQ.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2020</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.2003.Rule.Alert.Event2020.AlertName"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>