Удаление файлов журнала hornetq в JMS
Я знаю, что на подобный вопрос уже отвечали, но мне нужно кое-что прояснить по делу.
Извините, если я подниму эту довольно старую тему, но этот вопрос - единственный крюк, который я нахожу во всей сети.
Давайте представим, что каталог журналов моей JMS полон старого дерьма, от которого мне нужно избавиться (файлы hornetq-data-$id.hq n месяцев, которые все еще остаются там после аварии), и я знаю (произошло в другой системе) что, когда jms перезапустит все это содержимое будет передано с неприятными последствиями.
Давайте также представим, что я не могу остановить jms, и перезапуск будет выполнен в автоматическом режиме, в который я не могу вмешиваться.
Мой вопрос: если я удаляю эти старые файлы (не весь каталог, а только те, что были несколько месяцев назад) простым rm, это вызовет какие-либо проблемы (например, индексирование будет ошибочным), или я просто потеряю те сообщения (которые мне больше не нужны, так что все в порядке)?
1 ответ
Я ожидал бы, что это вызовет проблемы, даже потенциально останавливая брокера. Журнал является неотъемлемой частью брокера, и любой сбой операции ввода-вывода с журналом будет считаться "критическим" и приведет к остановке брокера.
Кроме того, файлы журнала используются циклически, поэтому маловероятно, что все сообщения, которые вы хотите удалить, находятся в определенных файлах журнала без каких-либо сообщений, которые вы хотите сохранить. Повторим, вы не должны удалять файлы журнала. Просто используйте API управления. Это позволит вам удалять сообщения из отдельных очередей. Вы можете удалить все сообщения из определенной очереди или предоставить фильтр для выборочного удаления определенных сообщений. Вы можете использовать это через JMX или сообщения управления (т.е. специально сконструированные сообщения JMS, отправленные на адрес управления).