WebSphere MQ Get - 按MachineName筛选消息

时间:2014-06-10 12:12:36

标签: .net ibm-mq

我们是一个使用相同WebSphere MQ队列来编写和读取消息的开发人员团队。因为我们使用相同的队列,所以读者可以从另一台机器中获取一些消息。 有没有办法过滤发件人的 Environment.MachineName 从队列中读取的邮件?

这是我尝试使用 MQMessage.GroupId

  1. PUT
  2. 的消息上设置GroupId
  3. GET 设置 MQGetMessageOptions.MatchOptions = MQC.MQMO_MATCH_GROUP_ID ,并在消息上设置 GroupId
  4. 基本上我正在尝试为每个使用该队列的工作站创建一个组。不幸的是,这不起作用, GET 不会读取任何消息。

    还有其他选择来实现我需要的东西吗? 我正在使用 WebSphere MQ 7.0.1 amqmdnet.dll WebSphere MQ Classes for .NET

    提前致谢, 拉杜

1 个答案:

答案 0 :(得分:0)

OMG。不要这样做 - 这是一个可怕的设计。更好的解决方案是创建许多队列,以便每个队列处理一个独特的功能。 即

  • BANK.ACCOUNT.LIST
  • BANK.ACCOUNT.DEPOSIT
  • BANK.ACCOUNT.WITHDRAWAL
  • BANK.ACCOUNT.TRANSFER

如果消息用于不同目的,绝对没有理由让多个应用程序将消息放入同一队列。