如果在 MSMQ 专用队列上启用了日志,并且具有存储限制(例如,100 KB),那么当超出该限制时会发生什么情况?你能配置这种行为吗?
具体来说:
- 消息仍然可以写入队列吗?
- 这些消息会被写入日志吗?
- 已写入日志的旧消息会怎样?
人们似乎暗示设置限制是期刊增长和超出服务器资源风险的一种解决方案,但我还没有发现有人解释超过限制时会发生什么。
在我们自己的(非常有限的)测试中,似乎消息只是停止写入日志。(即,当日志队列达到其限制时,旧消息仍保留在日志中,但对于所有未来的消息,日志实际上已关闭)。
是的,日记功能将不再适用于新的日记消息。日志消息应该像任何其他消息一样被处理,因此它们不应该被允许累积。
我发现完整日志甚至可以阻止接收消息的报告,而不仅仅是将它们移动到日志:
https://social.msdn.microsoft.com/Forums/ie/en-US/58e12d5a-acf3-4c67-a02a-9fa7528a5912/msmq-journal-full
然而,这可能会发生,因为 MSMQ 在那个时候达到了其他一些配额,可能是它对所有队列的全局存储限制,而不仅仅是因为日志。我无法仅通过限制期刊来复制它。但无论如何,不要让日志增长太多是个好主意。
顺便提一句。我们制作了可以定期备份和清空日志的商业工具 - QueueMonitor