Если журнал включен в частной очереди MSMQ с ограничением хранилища (например, 100 килобайт), что произойдет при превышении этого ограничения? А можно ли настроить такое поведение?
В частности:
Люди, кажется, подразумевают, что установка лимита - это одно из решений, позволяющих снизить риск роста журнала и превышения ресурсов сервера, но я не нашел никого, кто бы объяснил, что происходит при превышении лимита.
В нашем собственном (очень ограниченном) тесте казалось, что сообщения просто перестали записываться в журнал. (т.е. когда очередь журнала достигла своего предела, старые сообщения остались в журнале, но для всех будущих сообщений журнал был фактически отключен).
Я обнаружил сообщения о том, что полный журнал может даже блокировать получение сообщений, а не просто перемещать их в журнал:
Однако это могло произойти из-за того, что в этот момент MSMQ достиг некоторой другой квоты, возможно, своего глобального лимита хранения для всех очередей, а не только из-за журнала. Я не мог воспроизвести это, ограничивая только журнал. Но в любом случае не позволять журналу разрастаться слишком сильно.
Кстати. мы сделали коммерческий инструмент, который, помимо прочего, может периодически создавать резервные копии и очищать журнал - QueueMonitor
Да, ведение журнала перестанет работать для новых сообщений журнала. Сообщения журнала должны обрабатываться так же, как и любые другие сообщения, поэтому они не должны накапливаться.