大消息不会从消息目录中删除

时间:2019-06-05 12:23:34

标签: activemq-artemis

大消息文件永远不会从大消息目录中删除。 Artemis中的以下代码实际上是从大型邮件目录中删除大型邮件文件的。以下方法位于类org.apache.activemq.artemis.core.io.AbstractSequentialFile

@Override
public final void delete() throws IOException, InterruptedException, ActiveMQException {
   if (isOpen()) {
      close();
   }

   try {
      Files.deleteIfExists(file.toPath()); //if file is not delete
   } catch (Throwable t) {
      logger.trace("Fine error while deleting file", t);
      ActiveMQJournalLogger.LOGGER.errorDeletingFile(this);
   }
}

在上述代码中,如果不删除文件,则此文件将永久保留在大型邮件目录中。有人可以让我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

如果删除文件时出现问题,则会记录一条ERROR消息,如下所示:

Failed to delete file /path/to/file

您可以使用此信息来确定应该删除哪个特定文件,然后手动删除该文件。

如果未记录任何异常(无论出于何种原因),并且您想摆脱磁盘上的大消息文件,并且该消息未在代理的任何队列中被引用,则停止该代理,删除该文件,然后重新启动经纪人。