2011-05-30 131 views
6

我使用KahaDB持久性适配器运行ActiveMQ 5.3.0(即将升级到5.4.2甚至5.5.0)。它有7个队列,大部分时间都是空的,也就是说,一旦消息被放入队列中,它将在未来5-10秒内被消耗。然而,消息数量很大(每天几千条消息)。ActiveMQ日志日志大小

问题是,KahaDB数据目录中填充了许多db-X.log文件(其中X是整数)。每个文件的大小为32 MB,并且(因为我运行的是默认配置),看起来它们是日志重做日志(因为默认日志文件长度为32mb)。他们占用了宝贵的空间(KahaDB托管在SSD卷上)并且看起来多余,因为在我看来,日志日志保留了旧的(即出列的)消息。

所以问题是:如何摆脱日志日志文件?我只想让KahaDB只存储待处理的消息。

正如我所提到的配置是非常默认。 Broker元素只设置brokerName和dataDirectory属性,而kahaDB只设置目录属性。

回答

1

升级到5.5.0以获取修补程序AMQ-2736

+0

不久的例子整件事情因此我无法测试升级解决方案。由于看起来很多人认为这个问题,如果有人可以在这里发表评论,确认升级5.5.x可以解决问题,那么我会很棒。会很乐意接受这个答案。 – 2014-09-08 07:24:34

2

如果您使用默认设置,那么这应该已经工作。这些文件将保留的唯一原因是,如果你有一个缓慢的消费者和消息备份等等...

“cleanupInterval”属性控制这些文件被清理的频率。默认情况下,这是30秒......这里是它设置为5秒(并减少日志大小为100kb更容易测试)问这个问题,我有点被迫关闭后

<kahaDB directory="${activemq.base}/data/kahadb" 
     journalMaxFileLength="100kb" 
     cleanupInterval="5000"/>