JMS中hornetq日志文件的删除

JMS中hornetq日志文件的删除,jms,hornetq,journal,Jms,Hornetq,Journal,我知道已经有一个asnwered,但是我需要一些关于这个案件的澄清 我很抱歉,如果我提出这个相当古老的话题,但这个问题是我在整个网络上找到的唯一的钩子 让我们想象一下,我的JMS的日志目录中满是我需要处理的旧垃圾(hornetq数据-$id.hq文件有n个月了,在灾难发生后仍在那里),我知道(发生在另一个系统上),当JMS重新启动时,所有内容都会流出来,带来令人不安的后果 让我们设想一下,我无法停止jms,而重启将以一种我不允许干预的自动方式进行 我的问题是,如果我用一个简单的“rm”删除那些旧

我知道已经有一个asnwered,但是我需要一些关于这个案件的澄清

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

让我们想象一下,我的JMS的日志目录中满是我需要处理的旧垃圾(hornetq数据-$id.hq文件有n个月了,在灾难发生后仍在那里),我知道(发生在另一个系统上),当JMS重新启动时,所有内容都会流出来,带来令人不安的后果

让我们设想一下,我无法停止jms,而重启将以一种我不允许干预的自动方式进行


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

我希望它会引起麻烦,甚至有可能阻止经纪人。日志是代理不可分割的一部分,日志的任何I/O操作故障都将被视为“严重”,并将导致代理关闭


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

非常感谢@jbertram!不过,我需要一些小的进一步澄清。你说写不好会产生问题,但我认为删除这些文件会导致阅读失败,我错了吗?此外,很抱歉,我对API不太熟悉。我希望删除的消息都在标识良好的文件中。我可以将文件作为一个整体删除,还是只能作为“交互对象”访问消息?