首页 > 解决方案 > 删除 JMS 中的 hornetq 日志文件

问题描述

我知道已经有一个类似的问题,但我需要对此案进行一些澄清。

如果我提出这个相当老的话题,我很抱歉,但这个问题是我在整个网络中找到的唯一问题。

让我们想象一下我的 JMS 的日志目录充满了我需要摆脱的旧垃圾(hornetq-data-$id.hq 文件 n 个月前,在灾难后仍然徘徊在那里)并且我知道(发生在另一个系统上)当 jms 重新启动时,所有内容都将被流出,带来令人不安的后果。

让我们也想象一下,我无法停止 jms,并且将以我不允许干预的自动方式重新启动。

我的问题是,如果我用一个简单的 'rm' 删除那些旧文件(不是整个目录,只是几个月前的那些)会造成任何麻烦(例如,索引会出错)还是我会丢失那些消息(我不再关心,所以没关系)?

标签: jmshornetqjournal

解决方案


我预计它会造成麻烦,甚至可能会阻止经纪人。日志是代理不可分割的一部分,日志的任何 I/O 操作失败都将被视为“严重”,并将导致代理关闭。

此外,日志文件以循环方式重复使用,因此您想要删除的所有消息都位于特定的日志文件中而没有您想要保留的任何消息的可能性很小。重申一下,您不应该删除任何日志文件。只需使用管理 API。它将允许您从单个队列中删除消息。您可以删除特定队列中的所有消息或提供过滤器以选择性地删除某些消息。您可以通过 JMX 或管理消息(即专门构造的 JMS 消息发送到管理地址)来使用它。


推荐阅读