基于IBM MQ的corretionID获取响应以获取多线程方案

时间:2015-01-04 18:58:35

标签: jms spring-jms

我的要求是:

我有一个IBM MQ,它在20个服务器之间共享并运行JMS客户端。现在队列中将有一条特定的消息用于特定的线程。该线程需要使用correlationID来从MQ中的所有消息中获取消息。

当我使用onMessage()时,不确定哪个线程会监听该消息。假设server-1正在等待消息,但server-15正在侦听它。即使服务器1中的线程有消息,Server-1最终也会超时。

请在不引入重大性能问题的情况下建议我们如何处理此方案。

1 个答案:

答案 0 :(得分:3)

在侦听器容器上使用MessageSelector。如果correlationId位于标准JMSCorrelationID标头中,则选择器将JMSCorrelationID=foo接收所有foo条消息。