MSMQ - 一个队列是否能在队列进程重启/服务器重启后幸存?

11

MSMQ队列中的消息是否能够在服务/服务器重启后继续存在?我的意思是,如果一个队列中有消息,服务器遇到硬重启,那么重启后队列中的消息是否仍然可用?

1个回答

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);

这个领域的概述可以在MSMQ和.NET可靠消息传递中找到。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接