如何为通过 spring 集成使用的消息设置 jms header

How to set jms header for message that is consumed via spring integration

为了在 maxRelivery 尝试的情况下将消息移动到未送达 queue,tibco 代理期望将 jms 属性 JMS_TIBCO_PRESERVE_UNDELIVERED 设置为 true。我不确定消息被消费后如何设置 属性。

IntegrationFlows.from(Jms.messageDrivenChannelAdapter(connectionFactory)
                .destination(sourceQueue)
                .configureListenerContainer(spec -> {
                    spec.sessionTransacted(false);
                    spec.sessionAcknowledgeMode(Session.DUPS_OK_ACKNOWLEDGE);
                })
               .handle(someservice).get();

此 属性 适用于 JMS 生产者。

在将消息发送到 .handle(Jms.outboundAdapter()) 之前,使用 .enrichHeaders() 将此值设置到 headers 并不难。

在此处查看更多信息:https://haritibcoblog.com/2017/04/03/tibco-ems-properties-of-queues-and-topics-where-tuning-can-be-done/