Spring JmsTemplate目标特定的消息持久性



我正在使用JmsTemplate(spring-jms-5.2.8(将消息发送到嵌入式ActiveMQ代理,发送到多个主题。我希望某些主题是持久的(发送给它们的消息是持久的(,而有些则不持久。不幸的是,JmsTemplate似乎正在全局配置传递模式=通过它发送的所有消息(需要启用QOS(。

直接在消息上设置传递模式没有帮助,因为它稍后会被覆盖。

jmsTemplate.convertAndSend(destination, event, message -> {
message.setJMSDeliveryMode(XXX);
return message;
});

最好的解决方案是什么?真的所有通过JmsTemplate的消息都必须是持久的还是非持久的?我必须创建两个独立的JmsTemplates吗?这是个好办法吗?我要经过的接线厂怎么样?同一个连接工厂可以用于两个模板吗?

谢谢。

我必须创建两个独立的JmsTemplate吗?这是个好办法吗?

是;最简单的解决方案是定义2个模板。

上面的连接工厂怎么样?

??你说的";以上";。

您可以在每个模板中使用相同的工厂;他们将共享连接。

最新更新