大邮件不会从邮件目录中删除
Large Message are not removed from message directory
永远不会从大邮件目录中删除大邮件文件。 Artemis 中的以下代码实际上是从大消息目录中删除大消息文件。下面的方法在classorg.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);
}
}
在上面的代码中,如果文件没有被删除,那么这个文件将永远存在于大消息目录中。谁能告诉我如何解决这个问题。
如果删除文件时出现问题,则会记录一条 ERROR
消息,例如:
Failed to delete file /path/to/file
您可以使用此信息来确定应该删除哪个特定文件,然后手动删除该文件。
如果没有记录异常(无论出于何种原因)并且您想删除磁盘上的大消息文件并且该消息未在代理的任何队列中引用,则停止代理,删除文件,并重新启动代理。
永远不会从大邮件目录中删除大邮件文件。 Artemis 中的以下代码实际上是从大消息目录中删除大消息文件。下面的方法在classorg.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);
}
}
在上面的代码中,如果文件没有被删除,那么这个文件将永远存在于大消息目录中。谁能告诉我如何解决这个问题。
如果删除文件时出现问题,则会记录一条 ERROR
消息,例如:
Failed to delete file /path/to/file
您可以使用此信息来确定应该删除哪个特定文件,然后手动删除该文件。
如果没有记录异常(无论出于何种原因)并且您想删除磁盘上的大消息文件并且该消息未在代理的任何队列中引用,则停止代理,删除文件,并重新启动代理。