Un messaggio in coda MSMQ può sopravvivere al riavvio di un servizio/server? Ciò che intendo è che se una coda ha dei messaggi e il server dovesse subire un duro riavvio, i messaggi sarebbero ancora disponibili in coda dopo il riavvio?MSMQ - una coda può sopravvivere al riavvio del processo di coda/riavvio del server
10
A
risposta
16
Per ottenere ciò è necessario contrassegnare i messaggi come Ripristinabili. Per impostazione predefinita, i messaggi MSMQ vengono conservati solo in memoria, ma i messaggi recuperabili vengono salvati su disco per abilitare la messaggistica MSMQ affidabile.
using System.Messaging;
Message recoverableMessage = new Message();
recoverableMessage.Body = "Sample Recoverable Message";
recoverableMessage.Recoverable = true;
MessageQueue msgQ = new MessageQueue(@".\$private\Orders");
msgQ.Send(recoverableMessage);
V'è una panoramica di questa zona a Reliable Messaging with MSMQ and .NET.
I messaggi transazionali non devono essere contrassegnati manualmente come recuperabili, ciò è implicito nel fatto che fanno parte di una transazione basata su MSMQ.