2010-10-11 21 views
10

MSMQ có thể xếp hàng đợi các tin nhắn tồn tại khi khởi động lại dịch vụ/máy chủ không? Điều tôi ngụ ý là nếu hàng đợi có thông báo và máy chủ gặp phải sự cố khởi động lại cứng, liệu các thông báo vẫn có sẵn trong hàng đợi sau khi khởi động lại?MSMQ - có thể một hàng đợi tồn tại trong quá trình xếp hàng khởi động lại/máy chủ khởi động lại

Trả lời

16

Để đạt được điều này, bạn phải đánh dấu thư là Có thể khôi phục. Theo mặc định, các tin nhắn MSMQ chỉ được lưu trong bộ nhớ, nhưng các tin nhắn có thể phục hồi được sao lưu vào đĩa để cho phép tin nhắn MSMQ đáng tin cậy.

using System.Messaging; 

Message recoverableMessage = new Message(); 
recoverableMessage.Body = "Sample Recoverable Message"; 
recoverableMessage.Recoverable = true; 
MessageQueue msgQ = new MessageQueue(@".\$private\Orders"); 
msgQ.Send(recoverableMessage); 

Có tổng quan về khu vực này tại Reliable Messaging with MSMQ and .NET.

Thông điệp giao dịch không cần phải được đánh dấu thủ công là có thể phục hồi - điều này là ngầm định trong thực tế chúng là một phần của giao dịch dựa trên MSMQ.

Các vấn đề liên quan