2011-05-30 167 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"/>