MSMQ - может ли очередь пережить перезапуск процесса очереди / перезапуск сервера - PullRequest
10 голосов
/ 11 октября 2010

Могут ли сообщения MSMQ в очереди пережить перезапуск службы / сервера?Я имею в виду, что если в очереди есть сообщения, а на сервере произошел жесткий перезапуск, будут ли сообщения все еще доступны в очереди после перезапуска?

1 Ответ

16 голосов
/ 11 октября 2010

Для этого вам нужно пометить сообщения как Восстанавливаемые. По умолчанию сообщения 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.

...