使用KahaDB的ActiveMQconfiguration

我们使用ActiveMQ 5.6.0和KahaDB。 它已经产生了相当多的日志文件,这是我们的设置(DLQ和东西)预期,看起来像这样:

$ ll -h /opt/activemq/data/kahadb/ total 969M drwxr-xr-x 2 root root 4.0K Nov 3 12:47 ./ drwxr-xr-x 3 activemq activemq 4.0K Sep 24 12:12 ../ -rw-r--r-- 1 root root 39M Oct 16 07:57 db-202.log -rw-r--r-- 1 root root 38M Oct 16 07:57 db-203.log -rw-r--r-- 1 root root 33M Oct 17 08:12 db-238.log ... 

当我们遇到1GB的临时使用限制时,没有更多的消息被处理。 或者这就是我们所假设的,这是正确的吗?

configuration如下所示:

 <systemUsage> <systemUsage> <memoryUsage> <memoryUsage limit="512mb"/> </memoryUsage> <storeUsage> <storeUsage limit="3 gb"/> </storeUsage> <tempUsage> <tempUsage limit="1 gb"/> </tempUsage> </systemUsage> </systemUsage> 

清理完日志文件后,仍然没有消息被AMQ消耗。 只有当我们手动清除路由时,邮件才会再次被传送。

所以我们需要确保KahaDB的日志大小始终保持低于临时用法,对吗? 在修复这个bug之后还没有收到这个交付,还是还有其他的步骤可以采取?

是的,您应该查看storeUsage限制。

如果队列中有未传送的消息,则不能删除日志。

解决scheme是: