在 ActiveMQ Artemis 中过滤.在集群中重新加载配置



关于 ActiveMQ Artemis 中过滤的问题。

如果我有一个名为 MyQueue.IN 的队列和一个只接受特定 JMS 标头的过滤器。比方说订单。

在经纪人中.xml在标签下

<core>
<configuration-file-refresh-period>5000</configuration-file-refresh-period>
<queues>
<queue name="MyQueue.IN">
<address>MyQueue.IN</address>
<filter string="TOSTATUS='ORDER'"/>
<durable>true</durable>
</queue>
</queues>
</core>

当我阅读手册时,更改代理.xml它现在应该每 5 秒在代理中重新配置.xml一次。

但是当我将过滤器更改为

<filter string="TOSTATUS='ORDERPICKUP'"/>

配置在ActiveMQ Artemis中没有更改。

即使我重新启动节点也不会。

它在一个集群中,但我在两边都更改了经纪人.xml。

关于如何更改队列过滤器的任何想法?最好通过更改经纪人.xml

/泽迪

您看到的是预期的行为。尽管此行为可能不直观或特别用户友好,但它旨在保护数据完整性。 队列是不可变的,因此一旦创建就无法更改。 因此,要"更改"队列,必须将其删除并重新创建。 当然,删除队列意味着丢失队列中的所有消息,这可能是灾难性的。 通常,有两种方法可以删除队列并重新创建队列:

  1. 在匹配的<address-setting>中设置<config-delete-queues>FORCE</config-delete-queues>。但是,这种方法目前存在一个问题,将通过ARTEMIS-2076解决。
  2. 代理运行时通过管理删除队列。这可以通过JMX(例如使用JConsole(,Web控制台,Artemis CLI等来完成。停止代理后,更新 XML,然后重新启动代理。

相关内容

  • 没有找到相关文章

最新更新