Я столкнулся со странной ситуацией:
Сообщения отправляются с СервераA на СерверB. Он отправляется в исходящую очередь ServerA, а затем отправляется в очередь ServerB.
СерверB потерпел крах. Нам пришлось переформатировать. Когда мы подняли его, мы забыли установить службу MSMQ.
Сообщения начинают накапливаться в исходящей очереди ServerA до тех пор, пока программа, отправляющая сообщения, не выдаст исключение недостаточных ресурсов.
Мы заметили ошибку и установили MSMQ Service на ServerB. Сервер A начинает немедленно освобождать свою исходящую очередь.
Когда мы запустили программу для обработки сообщений на сервере B, она не смогла подключиться. Мы узнали, что забыли создать очередь на ServerB. Однако к этому времени было уже слишком поздно. Все 900K сообщений, которые находились в очереди ServerA, были отправлены на ServerB. Из того, что я могу сказать, ServerB выбросил их, потому что он не был настроен с очередью назначения. Я уже знаю, что правильное решение - ОСТАНОВИТЬ очередь на Сервере A до тех пор, пока мы полностью не настроим Сервер B.
Вопрос: действительно ли это то поведение, которое мы должны ожидать от MSMQ? Я бы подумал, что для более строгого подхода к проектированию ServerB должен был бы отклонять сообщения, а не отбирать их и выбрасывать.