删除 JMS 中的 hornetq 日志文件

Removal of hornetq journal files in JMS

我知道已经有人回答了 similar question,但我需要对这个案例进行一些澄清。

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

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

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

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

我预计它会造成麻烦,甚至可能会停止代理。日志是代理的组成部分,任何 I/O 日志操作失败都将被视为 "critical" 并将导致代理关闭。

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