设置 MQ 标志以使用 API 退出读取分段消息

Setting MQ flags for reading segmented message with API exit

我正在尝试设置标志以使用 GetBefore Exit 调用无缝读取分段消息,如下所示:

(*ppGetMsgOpts)->Options = MQGMO_WAIT | MQGMO_LOGICAL_ORDER | MQGMO_ALL_SEGMENTS_AVAILABLE | MQGMO_COMPLETE_MSG | (*ppGetMsgOpts)->Options; 

如果我使用 rfhutil 作为读取客户端,它会非常好用,整个消息被一次读取,即使它是分段存储的。 但是当我尝试使用 JMS 客户端读取时,它以以下错误代码结束:

'2046' ('MQRC_OPTIONS_ERROR')

MQ 日志没有给出任何线索,仅讲述 "internal error"。

是否可以使用 JMS 客户端读取此类消息? 即使没有,选项的特殊问题是什么?

消息分段是消息提供程序特定的功能,未在 JMS 规范中定义。因此,您必须使用提供者特定的 API,例如 MQ base Java 类 来获取分段消息。