我正在运行带有KahaDB持久性适配器的ActiveMQ 5.3.0 (是的,很快就会升级到5.4.2,甚至5.5.0 )。它有7个队列,大部分时间都是空的,也就是说,一旦消息被放入队列,它就会在接下来的5-10秒内被消费。然而,消息量是相当大的(每天几千条消息)。
问题是KahaDB数据目录中填充了大量的db-X.log文件(其中X是整数)。每个文件的大小是32MB(因为我运行的是相当多的默认配置),它们似乎是日志重做日志(因为默认的日志文件长度是32mb)。它们占用了宝贵的空间(KahaDB托管在固态硬盘卷上),而且似乎是多余的,因为在我看来,日志日志保存的是旧的(即出列的)消息。
所以问题是:如何去除日志文件?我只想让KahaDB只存储挂起的消息。
正如我已经提到的,配置在很大程度上是默认的。Broker元素只设置了brokerName和dataDirectory属性,而kahaDB只设置了目录属性。
发布于 2011-06-16 05:47:32
如果您使用的是默认设置,那么这应该已经可以工作了。这些文件仍然存在的唯一原因是如果你有一个缓慢的消费者,消息正在备份,等等。
"cleanupInterval“属性控制清理这些文件的频率。默认情况下,这是30s...here示例,它将日志大小设置为5秒(并将日志大小减少到100kb以便于测试)
<kahaDB directory="${activemq.base}/data/kahadb"
journalMaxFileLength="100kb"
cleanupInterval="5000"/>发布于 2011-06-01 17:08:28
升级到5.5.0以获取AMQ-2736的修补程序。
https://stackoverflow.com/questions/6175203
复制相似问题