The Message Queuing service cannot start due to problem with message store.

MSMQ.Rule.Alert.Event2023 (Rule)

Knowledge Base article:

Summary

The Message Queuing service cannot start due to problem with message store.

Configuration

To backup and restore Message Queuing messages using a command line

At a command prompt, type the following, and then press ENTER:

mqbkup {-bfolderpath | -rfolderpath| -?} [-y] [-cmsmq_resource_name]

 

Value

Description

-bfolderpath

backs up the files to the specified folder

-rfolderpath

restores the files from the specified folder

-y

don't prompt (yes to all questions)

-cmsmq_resource_name

used when MSMQ is configured as a clustered resource, specify the clustered MSMQ resource name

-?

displays help for the utility

Causes

The Message store is causing problems to the Message Queuing Service.

Resolutions

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.

Note: Closing the control panel is not an issue on Windows XP and above because these versions of Windows do not include an MSMQ control panel extension.

Additional considerations

The Mqbkup utility cannot be used to backup or restore objects stored in Active Directory Domain Services. Therefore, the Mqbkup utility cannot backup or restore public queues since public queues are objects in Active Directory Domain Services. The Mqbkup utility does backup or restore any Message Queuing messages stored on the local computer that are referenced by public queues but the public queues themselves must be backed up or restored independently of the Mqbkup utility.

This utility backs up recoverable and transactional messages; including those in the outgoing queues. It does not back up or restore express messages.

Certificate and cryptographic key information is not backed up using this utility.

After a restore operation, you must register a new user certificate. For information about how to register a certificate, see Additional references.

This utility stops and restarts the Message Queuing service, which will cause any express messages to be lost. For more information about express messages, see Additional references.

If a COM+ application has been invoked by a rule that is bound to a trigger, then restoring of messages may fail with an "access is denied" error. To resolve this issue, follow these steps:

On Windows Vista® computers, start mqbkup from a command prompt that is running with local Administrator privileges.

Ensure that all user applications and services that are using the MSMQ API's are stopped.

If restoring of messages still fails, wait for 10 minutes and try again. COM+ applications can take up to 10 minutes to unload from memory after all objects are released.

Additional

For more information, see Back Up and Restore Messages ( http://technet.microsoft.com/en-us/library/cc771016(WS.10).aspx).

For more information, see Register Certificates for Message Queuing ( http://technet.microsoft.com/en-us/library/cc753651(WS.10).aspx).

For more information, see Message Delivery Methods ( http://technet.microsoft.com/en-us/library/cc771721(WS.10).aspx).

Element properties:

TargetMSMQ.Server
CategoryAvailabilityHealth
EnabledFalse
Event_ID2023
Event Source$Target/Property[Type="MSMQ.Server"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
The Message Queuing service cannot start due to problem with message store.
{0}
Event LogApplication

Member Modules:

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

Source Code:

<Rule ID="MSMQ.Rule.Alert.Event2023" Enabled="false" Target="MSMQ.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.Server"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2023</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="MSMQ.Rule.Alert.Event2023.AlertName"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>