Java Spring JmsTemplate特定于目的地的消息持久性
我正在使用Java Spring JmsTemplate特定于目的地的消息持久性,java,spring-jms,jmstemplate,Java,Spring Jms,Jmstemplate,我正在使用JmsTemplate(spring-jms-5.2.8)将消息发送到一个嵌入式ActiveMQ代理,发送到多个主题。我希望一些主题是持久的(发送给它们的消息是持久的),而有些则不是。不幸的是,JmsTemplate似乎正在为通过它发送的所有消息全局配置传递模式(需要启用QOS) 直接在邮件上设置传递模式没有帮助,因为它稍后会被覆盖 jmsTemplate.convertAndSend(destination, event, message -> { message.se
JmsTemplate
(spring-jms-5.2.8)将消息发送到一个嵌入式ActiveMQ代理,发送到多个主题。我希望一些主题是持久的(发送给它们的消息是持久的),而有些则不是。不幸的是,JmsTemplate似乎正在为通过它发送的所有消息全局配置传递模式(需要启用QOS)
直接在邮件上设置传递模式没有帮助,因为它稍后会被覆盖
jmsTemplate.convertAndSend(destination, event, message -> {
message.setJMSDeliveryMode(XXX);
return message;
});
解决这个问题的最佳方案是什么?所有通过JmsTemplate的消息都必须是持久的还是非持久的?我必须创建两个单独的JMSTemplate吗?这是一个好方法吗?我要经过的连接工厂呢?两个模板是否可以使用相同的连接工厂
谢谢
我必须创建两个单独的JMSTemplate吗?这是一个好方法吗
对,;最简单的解决方案是定义两个模板
上面的连接工厂怎么样
???不清楚你说的“上面”是什么意思
您可以在每个模板中使用相同的工厂;他们将共享连接。问题已澄清,您也已回答。谢谢