Подтвердить что ты не робот

MSMQ - может ли очередь выдержать перезагрузку очереди/перезапуск сервера

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

4b9b3361

Ответ 1

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