当我启动或重新启动activeMQ实例时,如何清除/清除所选队列(例如FOO.BAR)。
有没有办法在activemq.xml中配置或以其他任何方式处理它?</ p>
请注意我有群集环境,目前正在运行两个ActiveMQ实例(instance1和instance2)。
注意:我不想使用deleteAllMessagesOnStartup="true"
,因为它会删除所有可用的队列。
我试图将Apache Camel与ActiveMQ一起使用。所以,如果我们能够用Camel完成这项工作,请告诉我。
答案 0 :(得分:2)
您需要使用JMX清除方法清除队列,或使用deleteAllMessagesOnStartup。没有用于清除单个队列或队列集的配置,这是一个管理操作。如果您需要一段时间后消息消失,请考虑使用时间在消息上生存。
答案 1 :(得分:0)
您可以做的是将您的activemq启动脚本自定义为
语法如下所示:
activemq-admin.bat purge name_of_your_broker name_of_the_queue
这里的技巧是在activemq完全初始化时仅启动第二个脚本。
答案 2 :(得分:0)
由于我找不到任何直接的答案,我想与ApacheCamel一起处理。设置
ProducerTemplate sendBody
作为
ascExchangePattern.InOut
因此,如果客户端断开连接或者ActiveMQ isntance重新启动,那么这些待处理的队列消息将转到死信队列,我可以稍后处理这些消息。