可以清除物理目的地上当前排队的所有消息。清除物理目的地意味着目的地上存储的所有消息都将被删除。
当堆积的消息占用了过多的系统资源时,可能需要清除消息。当某个队列没有注册的使用方客户端,但仍然接收大量消息时,可能会发生这种情况。如果某个主题的长期订户始终处于非活动状态也可能发生这种情况。在上述两种情况下,都没有必要保留消息。
要清除物理目的地中的消息,请使用 purge dst 子命令。下面是 purge dst 子命令的语法:
purge dst -t destType -n destName
示例:
imqcmd purge dst -n myQueue -t q -u admin imqcmd purge dst -n myTopic -t t -u admin
如果关闭代理后不希望在重新启动代理时传送过时消息,请使用 -reset messages 选项清除过时消息;例如:
imqbrokerd -reset messages -u admin
这样可以避免重新启动代理后清除目的地的麻烦。
在代理群集中,物理目的地实例位于群集的各个代理中。必须分别清理每个目的地。