大消息文件永远不会从大消息目录中删除。 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);
}
}
在上述代码中,如果不删除文件,则此文件将永久保留在大型邮件目录中。有人可以让我如何解决这个问题。
答案 0 :(得分:0)
如果删除文件时出现问题,则会记录一条ERROR
消息,如下所示:
Failed to delete file /path/to/file
您可以使用此信息来确定应该删除哪个特定文件,然后手动删除该文件。
如果未记录任何异常(无论出于何种原因),并且您想摆脱磁盘上的大消息文件,并且该消息未在代理的任何队列中被引用,则停止该代理,删除该文件,然后重新启动经纪人。