The message could not be moved to deadletter queue. The deadletter queue needs to be transactional.

Microsoft.MSMQ.2008R2.Rule.Alert.Event2256 (Rule)

The message could not be moved to deadletter queue. The deadletter queue needs to be transactional. The message will be moved to the system transactional dead letter queue.

Knowledge Base article:

Summary

The message could not be moved to deadletter queue. The deadletter queue needs to be transactional. The message will be moved to the system transactional dead letter queue.Make the per-app dead-letter queue transactional or the messages being sent to it nontransactional.

Causes

The dead-letter queue that is specified in the event is nontransactional, but there are transactional messages trying to go there.

Resolutions

Make the per-app dead-letter queue transactional or the messages being sent to it nontransactional

To allow messages to go to the dead-letter queue, recreate the dead-letter queue as a transactional queue, or if you have control over the messages that are being sent to the queue, ensure that the messages are nontransactional.

To recreate the dead-letter queue as a transactional queue, create a new transactional queue with all the same properties as the original dead-letter queue, but make the new queue transactional.

Additional

For more information about creating queues, see Create Queues ( http://go.microsoft.com/fwlink/?LinkId=104735).

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

Element properties:

TargetMicrosoft.MSMQ.2008R2.Servers
CategoryConfigurationHealth
EnabledFalse
Event_ID2256
Event Source$Target/Property[Type="Microsoft.MSMQ.2008R2.ServerRole"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
The message could not be moved to deadletter queue. The deadletter queue needs to be transactional.
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.2008R2.Rule.Alert.Event2256" Enabled="false" Target="Microsoft.MSMQ.2008R2.Servers" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>ConfigurationHealth</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">2256</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.2008R2.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.2008R2.Rule.Alert.Event2256.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>