IBM MQ 从订阅队列中的消息中获取主题名称

IBM MQ get topic name from message in subscription queue

我正在使用 'c-client' api 访问 Websphere IBM MQ 8。是否可以识别发布消息的源主题?

要查询主题字符串,请使用 MQCRTMH API 调用获取消息句柄,然后使用 MQINQMP API 查询消息的属性调用指定 MQTopicString 属性.

MQCRTMH - Create message handle
MQINQMP - Property Names
Sample IBM MQ procedural programs

诚然,可能很难在 IBM MQ 参考文档中找到此信息,尤其是当您还不知道它的工作方式以及调用和字段的名称时。一种有用的方法是从示例程序开始以获得基本的理解,然后返回到手册中以填补缺失的细节。通过选择适当的可选组件,可以从安装媒体获得示例代码。

在 Windows 上,这些最终在 {MQM Home}/Tools 上,在 UNIX 系统上在 {MQM Home}/samp 上。如果安装了示例,AMQSIQMA 将演示如何查询消息句柄的属性,并且是使用 MQINQMP API 调用的示例。

To inquire on the topic string, use the MQCRTMH API call to obtain a message handle, then inquire the properties of the message using the MQINQMP API call specifying the MQTopicString property.

正确的消息 属性 名称是 'mqps.Top'(区分大小写且无引号)。