我目前正在使用IBM Websphere MQ API(v7.5)在C#中开发一个应用程序,其主要目标是从队列中获取消息并将它们存储在数据库中。一切都很好,我知道得到并浏览消息。但我必须根据他们的优先级不同地处理消息。
是否有任何“简单”的方式来获取具有给定优先级的消息?
我不想使用肮脏的技巧,例如浏览所有消息,存储我感兴趣的消息的ID,然后逐个获取它们。我在MQ文档中读到,我们可以使用selector string使用类似SQL的语法浏览特定的消息,但我没有找到如何在C#中执行此操作。
非常感谢你的帮助!
答案 0 :(得分:1)
截至目前,在MQ .NET中,您可以使用MQC.MQMO_MATCH_MSG_ID
和MQC.MQMO_MATCH_CORREL_ID
匹配选项来获取与消息ID或相关ID匹配的消息。获取与Priority
匹配的邮件不可用。
或者,您切换到使用XMS .NET
,允许使用SQL92样式选择字符串创建使用者。例如,您可以使用选择字符串"JMSPriority > 3 AND manufacturer = 'Jaguar'"
创建使用者,以仅接收JMSPriority
为3且manufacturer
名称为Jaguar的邮件。