我有一个带有两个队列的应用程序,第一个队列有控制消息,另一个队列有数据消息。根据来自控制队列的消息的JMSCorrelationID,我需要只从数据队列中读取具有该JMSCorrelationID的消息。
我可以使用下面定义的选择器有选择地从数据队列中读取消息。
<int-jms:message-driven-channel-adapter id="messageDrivenInboundAdapter"
channel="inboundChannel" destination-name="inboundMQ"
selector="JMSCorrelationID = 'JMSCORELIS1234'"
connection-factory="connectionFactory" extract-payload="false"/>
我需要根据在不同频道上收到的消息动态更新选择器的JMSCorrelationID的值。
有可能吗?是否有不同的方法在Spring集成中实现此解决方案?
答案 0 :(得分:0)
消息驱动适配器无法实现;选择器被烘焙到初始化期间构造的消息侦听器容器中。
您可以更改已轮询的<inbound-channel-adapter/>
的消息选择器;该变更将在下次投票中生效。
您可以通过自动连线或通过bean名称(JmsDestinationPollingSource
)获取adapterId.source
的句柄。