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

Moi*_*ala 10 .net c# distributed msmq

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

Ste*_*end 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);
Run Code Online (Sandbox Code Playgroud)

使用MSMQ和.NETReliable Messaging中概述了该领域.

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