设置 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 类 来获取分段消息。
我正在尝试设置标志以使用 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 类 来获取分段消息。