Конфигурация ActiveMQ с KahaDB

Мы используем 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
...

Больше сообщений не было обработано, когда мы столкнулись с лимитом временного использования в 1 ГБ. Или это то, что мы предполагаем, это правильно?

Конфигурация выглядит так:

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

После очистки файлов журнала и превышения пределов AMQ все еще не принимал никаких сообщений. Только когда мы вручную очищали маршрут, сообщения начинали доставляться снова.

Итак, мы должны убедиться, что размер журнала KahaDB всегда остается ниже временного использования, верно? И эта доставка не была получена после исправления ошибки или есть какие-то другие шаги, которые нужно предпринять?

1 ответ

Решение

Да, вы должны искать ограничение storeUsage.

Если у вас есть недоставленные сообщения в очереди, журналы не могут быть удалены.

Решения:

  • поднять предел использования магазина;
  • следите за своими очередями и очищайте сообщения от них;
  • истечение срока действия сообщения настройки ( http://activemq.apache.org/manage-durable-subscribers.html).
Другие вопросы по тегам