MSMQ - 队列进程重启/服务器重启后队列是否存在

时间:2010-10-11 12:52:54

标签: c# .net msmq distributed

MSMQ排队的邮件能否在服务/服务器重启后继续存在?我的意思是,如果一个队列有消息并且服务器要经历硬重启,那么重启后消息是否仍然可以在队列中使用?

1 个答案:

答案 0 :(得分:16)

要实现此目的,您必须将消息标记为可恢复。默认情况下,MSMQ消息仅保留在内存中,但可恢复消息将备份到磁盘以启用可靠的MSMQ消息传递。

using System.Messaging;

Message recoverableMessage = new Message();
recoverableMessage.Body = "Sample Recoverable Message";
recoverableMessage.Recoverable = true;
MessageQueue msgQ = new MessageQueue(@".\$private\Orders");
msgQ.Send(recoverableMessage);

Reliable Messaging with MSMQ and .NET概述了这个区域。

交易消息不需要手动标记为可恢复 - 这是隐含的,因为它们是基于MSMQ的事务的一部分。