Назад | Перейти на главную страницу

Что произойдет, если вы превысите ограничение журнала MSMQ?

Если журнал включен в частной очереди MSMQ с ограничением хранилища (например, 100 килобайт), что произойдет при превышении этого ограничения? А можно ли настроить такое поведение?

В частности:

Люди, кажется, подразумевают, что установка лимита - это одно из решений, позволяющих снизить риск роста журнала и превышения ресурсов сервера, но я не нашел никого, кто бы объяснил, что происходит при превышении лимита.

В нашем собственном (очень ограниченном) тесте казалось, что сообщения просто перестали записываться в журнал. (т.е. когда очередь журнала достигла своего предела, старые сообщения остались в журнале, но для всех будущих сообщений журнал был фактически отключен).

Я обнаружил сообщения о том, что полный журнал может даже блокировать получение сообщений, а не просто перемещать их в журнал:

https://social.msdn.microsoft.com/Forums/ie/en-US/58e12d5a-acf3-4c67-a02a-9fa7528a5912/msmq-journal-full

Однако это могло произойти из-за того, что в этот момент MSMQ достиг некоторой другой квоты, возможно, своего глобального лимита хранения для всех очередей, а не только из-за журнала. Я не мог воспроизвести это, ограничивая только журнал. Но в любом случае не позволять журналу разрастаться слишком сильно.

Кстати. мы сделали коммерческий инструмент, который, помимо прочего, может периодически создавать резервные копии и очищать журнал - QueueMonitor

Да, ведение журнала перестанет работать для новых сообщений журнала. Сообщения журнала должны обрабатываться так же, как и любые другие сообщения, поэтому они не должны накапливаться.