private const string QUEUE_NAME = "private$\\localqueue"; private const string ERROR_QUEUE_NAME = "private$\\localerrorqueue"; if (!MessageQueue.Exists(".\\" + QUEUE_NAME)) return; if (!MessageQueue.Exists(".\\" + ERROR_QUEUE_NAME)) return; var messageQueues = MessageQueue.GetPrivateQueuesByMachine(Environment.MachineName); var queue = messageQueues.Single(x => x.QueueName == QUEUE_NAME); var errorQueue = messageQueues.Single(x => x.QueueName == ERROR_QUEUE_NAME); var noOfErrorMessages = errorQueue.GetAllMessages().Count(); if (noOfErrorMessages == 0) return; using (var transaction = new MessageQueueTransaction()) { transaction.Begin(); for (var i = 0; i < noOfErrorMessages; i++) { var message = errorQueue.Receive(transaction); queue.Send(message, transaction); } transaction.Commit(); }
sharky101
source share