Spring JmsTemplate 目标特定消息持久化
Spring JmsTemplate destination specific message persistence
我正在使用 JmsTemplate
(spring-jms-5.2.8) 将消息发送到嵌入式 ActiveMQ 代理到多个主题。我希望一些主题是持久的(发送给它们的消息是持久的)而有些则不是。不幸的是,JmsTemplate 似乎正在为通过它发送的所有消息全局配置传递模式(需要启用 QOS)。
直接在邮件上设置传递模式没有帮助,因为它稍后会被覆盖。
jmsTemplate.convertAndSend(destination, event, message -> {
message.setJMSDeliveryMode(XXX);
return message;
});
最好的解决办法是什么?真的所有通过 JmsTemplate 的消息都必须是持久的还是非持久的?我必须创建两个单独的 JmsTemplates 吗?这是一个好方法吗?我传入的连接工厂怎么样?两个模板可以使用同一个连接工厂吗?
谢谢。
Do I have to create two separate JmsTemplates? Is that a good approach?
是;最简单的解决方案是定义 2 个模板。
What about the connection factory above?
??不清楚你所说的“以上”是什么意思。
您可以在每个模板中使用相同的工厂;他们将共享连接。
我正在使用 JmsTemplate
(spring-jms-5.2.8) 将消息发送到嵌入式 ActiveMQ 代理到多个主题。我希望一些主题是持久的(发送给它们的消息是持久的)而有些则不是。不幸的是,JmsTemplate 似乎正在为通过它发送的所有消息全局配置传递模式(需要启用 QOS)。
直接在邮件上设置传递模式没有帮助,因为它稍后会被覆盖。
jmsTemplate.convertAndSend(destination, event, message -> {
message.setJMSDeliveryMode(XXX);
return message;
});
最好的解决办法是什么?真的所有通过 JmsTemplate 的消息都必须是持久的还是非持久的?我必须创建两个单独的 JmsTemplates 吗?这是一个好方法吗?我传入的连接工厂怎么样?两个模板可以使用同一个连接工厂吗?
谢谢。
Do I have to create two separate JmsTemplates? Is that a good approach?
是;最简单的解决方案是定义 2 个模板。
What about the connection factory above?
??不清楚你所说的“以上”是什么意思。
您可以在每个模板中使用相同的工厂;他们将共享连接。