删除activemq消耗的消息/秒

问题描述

我在我的应用程序中使用 ActiveMQ。我的问题是如何删除我使用 ActiveMQ 成功消费的消息。因为如果不删除,我的db.data文件一直在增长,不是最优解。

解决方法

假设我们谈论的是持久化消息,一旦消费者确认了一条消息,它就会被标记为被删除。只有在不再使用其日志文件时才会从磁盘中删除实际的消息。你可以找到more details here

日志文件在使用时不会被清理:

  • 包含目的地或持久主题订阅的待处理消息
  • 包含正在使用的数据文件中的消息的 ACK(日志链接)
  • 引用一个待处理的事务,在事务完成之前无法删除该事务
  • 正在对该日志进行待处理的写入

如果您看到日志文件的堆积,在大多数情况下,其原因与已路由到某种类型的 DLQ 的未确认消息有关。要释放内存,请使用/清除消息或删除未使用的持久订阅,直到代理可以清除日志。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...