【发布时间】:2016-05-29 13:54:39
【问题描述】:
我正在使用 ActiveMQ 的 compositeTopic 将消息扇出到多个目的地,如下所示:
<broker>
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
...
<destinationInterceptors>
<virtualDestinationInterceptor>
<virtualDestinations>
<compositeTopic name="fan-out" forwardOnly="true">
<forwardTo>
<queue physicalName="persistent"/>
<queue physicalName="ephemeral"/>
</forwardTo>
</compositeTopic>
</virtualDestinations>
</virtualDestinationInterceptor>
</destinationInterceptors>
</broker>
所以,我想同时将消息转发到persistent 和ephemeral 队列。正如您可能从他们的名字中猜到的那样,我希望persistent 队列中的消息是持久的,而我不需要ephemeral 队列的持久性。问题是 ActiveMQ 没有基于每个目标的持久性概念,是吗?可以为整个代理设置持久性,或使用持久性/非持久性交付模式。所以,问题是:在这种情况下,如何禁用 ephemeral 队列的持久性?
【问题讨论】:
-
基于此page,您似乎是正确的:“对于使用
setDeliveryMode的所有消息,在MessageProducer上设置了持久性标志。也可以在每条消息上指定它使用长格式的 send 方法的基础。持久性是单个消息的属性。"
标签: java jms persistence activemq