消息队列,读取限制

时间:2016-09-09 11:09:23

标签: java jms ibm-mq

我有以下任务,涉及ibm消息队列:

存在一个应用程序(JMS客户端),它从输入队列Q1获取消息并将消息放入Q2。有几个应用程序客户端将消息发送到Q1。客户端为每条消息指定相关ID。应用程序从Q1收到的消息中检索id,创建新的输出消息,添加检索到的id并将消息放入Q2。然后,每个客户端仅根据相关ID检索自己的消息。

我的问题是:

如果客户端未指定任何id,则他会从队列中读取所有消息。我想要一个限制,禁止在没有指定相关id时读取队列。

这是否可以仅使用ibm消息队列来完成? 如果没有任何其他建议。

1 个答案:

答案 0 :(得分:4)

您是否考虑过使用临时队列作为回复队列(Q2)?在此模式中,每个应用程序都会创建一个临时队列供自己使用。所有应用程序都放到Q1并将MQMD中的ReplyToQ设置为其临时队列的名称。

Q1上的应用程序处理消息将响应放到指定的ReplyToQ,而不是将它们全部放到具有给定相关ID的Q2。

这种情况应该避免错误的应用程序意外地从不适合他们的队列中消费消息。