[UNIX、Linux、Windows、IBM i]

消息分段

在某些情况下,如果将大邮件(最大邮件大小为 100 MB)分成几个较小的块,则可以更成功发送。 消息可由应用程序或队列管理器进行分段。 IBM® MQ for z/OS® 使用 IBM MQ classes for JMS 的应用程序或 IBM MQ messaging REST API 不支持此功能。

处理超过 4 MB 的报文中所述,增加最大报文长度会产生一些负面影响。 同样,仍可能导致消息对于队列或队列管理器过大。 在这些情况下,可以对消息进行分段。 有关分段的信息,请参阅信息组

以下几部分讨论了消息分段的常见使用情况。 对于放入和破坏性获取,会假定 MQPUT 或 MQGET 调用始终在一个工作单元中进行。 请始终考虑使用此方法来降低网络中存在不完整组的可能性。 将假定按队列管理器进行单阶段落实,但其他协调方法同等有效。

此外,在获取应用程序中,将假定如果多台服务器正在处理同一个队列,那么每台服务器都会执行类似的代码,以便一台服务器始终能够找到其预期使用的消息或分段(因为它已在先前指定了 MQGMO_ALL_MSGS_AVAILABLE 或 MQGMO_ALL_SEGMENTS_AVAILABLE)。
注意: 使用 "发布/预订" 将消息发送到主题 (或将消息放入主题别名) 时,不允许进行消息分组和分段。 

由于可以独立于发布活动创建和除去预订,因此无法保证订户将接收完整消息组或消息的所有段; 请参阅 RC2417: MQRC_MSG_NOT_ALLOWED_IN_GROUP

放入和获取跨多个工作单元的分段消息

您可以采用类似于 放置和获取跨工作单元的组的方式来放置和获取跨工作单元的分段消息。

但是,您无法在全局工作单元中放入或获取分段消息。