我正在使用KahaDB持久性适配器运行ActiveMQ 5.3.0(是的,要升级到5.4.2,甚至是5.5.0)。它有7个队列,大部分时间都是空的,也就是说,一旦消息被放入队列,它将在接下来的5-10秒内被消耗。然而,通过的消息量很大(每天几千条消息)。
问题是KahaDB数据目录中填充了大量的db-X.log文件(其中X是整数)。每个文件大小为32 MB(因为我运行的是相当多的默认配置),看起来它们是日志重做日志(因为默认日志文件长度是32mb)。它们占用了宝贵的空间(KahaDB托管在SSD卷上)并且看起来多余,因为在我看来,日志日志会保留旧的(即出列的)消息。
所以问题是:如何摆脱日志日志文件?我只是希望KahaDB只存储待处理的消息。
正如我所提到的,配置几乎是默认的。 Broker元素只设置了brokerName和dataDirectory属性,而kahaDB只设置了目录属性。
答案 0 :(得分:3)
如果您使用默认设置,那么这应该已经有效了。这些文件保留的唯一原因是,如果您的消费者很慢并且消息正在备份等等......
“cleanupInterval”属性控制这些文件清理的频率。默认情况下,这是30秒...这是一个将其设置为5秒的示例(并将日志大小减小到100kb以便于测试)
<kahaDB directory="${activemq.base}/data/kahadb"
journalMaxFileLength="100kb"
cleanupInterval="5000"/>
答案 1 :(得分:1)
升级到5.5.0以获取AMQ-2736的修复程序。