【发布时间】:2020-06-07 19:54:52
【问题描述】:
有谁知道为什么当我尝试使用 MQCMD_INQUIRE_CHANNEL 命令按此顺序使用这些参数查询频道时出现错误 MQRCCF_MSG_LENGTH_ERROR:
ChannelName (MQCFST)
ChannelAttrs (MQCFIL) can have any single or multiple attributes except MQIACF_ALL. With MQIACF_ALL works OK.
IntegerFilterCommand (MQCFIF)
如果我更改顺序(将 MQCFIL 结构放在最后),它可以正常工作:
ChannelName (MQCFST)
IntegerFilterCommand (MQCFIF)
ChannelAttrs (MQCFIL)
对于任何 QAttrs 值,类似的队列查询 (MQCMD_INQUIRE_Q) 在这两种情况下都可以正常工作:
QName (MQCFST)
QAttrs (MQCFIL)
IntegerFilterCommand (MQCFIF)
和
QName (MQCFST)
IntegerFilterCommand (MQCFIF)
QAttrs (MQCFIL)
调试信息:
对我来说最奇怪的事情之一是 MQIACF_ALL 参数,简单地将其替换为任何其他允许的参数(例如 MQCACH_DESC)会中断查询。
PS 我使用 python(没有 MQAI 的 pymqi 分支)来创建 MQ PCF 消息。 如果确实需要,我可以创建示例 C 程序以供批准,但我多次检查生成的二进制消息,它没有问题。
【问题讨论】:
-
"有人知道为什么吗?" - MQ 命令服务器中的代码有缺陷?
-
也许有人已经看到了这个问题
标签: ibm-mq