消息标志字段的结构
MDMFL 字段是一个 32 位整数,分为三个单独的子字段。
这些子字段标识:
- 本地队列管理器无法识别时拒绝的消息标志
- 始终接受的消息标志,即使本地队列管理器无法识别它们
- 仅当满足某些其他条件时才接受的消息标志
注:
MDMFL 中的所有子字段都保留供队列管理器使用。每个子字段都由位掩码标识,该位掩码在对应于子字段的位置中具有 1 位,在其他位置具有 0 位。 这些位的编号使得位 0 是最重要的位,而位 31 是最不重要的位。 定义了以下掩码以标识子字段:
- MFRUM
- 被拒绝的不受支持的消息标志的掩码。
此掩码标识
MDMFL字段中的位位置,其中本地队列管理器不支持的消息标志将导致 MQPUT 或 MQPUT1 调用失败,完成代码为 CCFAIL ,原因码为 RC2249。此子字段占用位位置 20 到 31。
此子字段中包含以下消息标志:- MFL联格观察团
- MFLSEG
- MF联格观察团
- MFSEG
- MFSEGA
- MFSEGI
- MFAUM
- 接受的不受支持的消息标志的掩码。
此掩码标识
MDMFL字段中的位位置,但是在 MQPUT 或 MQPUT1 调用上将接受本地队列管理器不支持的消息标志。 完成代码为 CCOK。此子字段占用位位置 0 到 11。
- MFAUXM
- 屏蔽仅在某些情况下接受的不受支持的消息标志。此掩码标识
MDMFL字段中的位位置,在此字段中,仍将在 MQPUT 或 MQPUT1 调用 上接受本地队列管理器不支持的消息标志,但前提是 满足以下两个条件:- 该消息的目标是远程队列管理器。
- 应用程序不会将消息直接放在本地传输队列上 (即,由 MQOPEN 或 MQPUT1 调用上指定的对象描述符中的
ODMN和ODON字段标识的队列不是本地传输队列)。
此子字段占用位位置 12 到 19。
如果在 MDMFL 字段中指定了队列管理器无法识别的标志,那么队列管理器将通过使用按位 AND 操作将 MDMFL 字段与该子字段的掩码组合来依次检查每个子字段。 如果该操作的结果不为零,那么将返回先前描述的完成代码和原因码。