如何在C#中仅获取具有特定优先级的Websphere MQ消息?

时间:2013-08-08 06:32:13

标签: c# .net ibm-mq

我目前正在使用IBM Websphere MQ API(v7.5)在C#中开发一个应用程序,其主要目标是从队列中获取消息并将它们存储在数据库中。一切都很好,我知道得到并浏览消息。但我必须根据他们的优先级不同地处理消息。

是否有任何“简单”的方式来获取具有给定优先级的消息?

我不想使用肮脏的技巧,例如浏览所有消息,存储我感兴趣的消息的ID,然后逐个获取它们。我在MQ文档中读到,我们可以使用selector string使用类似SQL的语法浏览特定的消息,但我没有找到如何在C#中执行此操作。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

截至目前,在MQ .NET中,您可以使用MQC.MQMO_MATCH_MSG_IDMQC.MQMO_MATCH_CORREL_ID匹配选项来获取与消息ID或相关ID匹配的消息。获取与Priority匹配的邮件不可用。

或者,您切换到使用XMS .NET,允许使用SQL92样式选择字符串创建使用者。例如,您可以使用选择字符串"JMSPriority > 3 AND manufacturer = 'Jaguar'"创建使用者,以仅接收JMSPriority为3且manufacturer名称为Jaguar的邮件。