MQPMR-放置消息记录
将消息放入分发列表时,使用 MQPMR 结构为单个目标指定各种消息属性。 MQPMR 是 MQPUT 和 MQPUT1 调用的输入/输出结构。
可用性
MQPMR 结构在以下平台上可用:
AIX®
IBM® i
Linux®
Windows
字符集和编码
MQPMR 中的数据必须包含由 CodedCharSetId 队列管理器属性提供的字符集以及由 MQENC_NATIVE 提供的本地队列管理器的编码。 但是,如果应用程序作为 MQ 客户机运行,那么结构必须采用客户机的字符集和编码。
用法
通过在 MQPUT 或 MQPUT1 调用上提供这些结构的数组,可以在分发列表中为每个目标队列指定不同的值。 某些字段仅为输入,而其他字段为输入/输出。
注: 此结构异常,因为它没有固定布局。 此结构中的字段是可选的,每个字段的存在或不存在由 MQPMO 中
PutMsgRecFields 字段中的标志指示。 存在的字段 必须按以下顺序出现: :MsgIdCorrelIdGroupIdFeedbackAccountingToken
不存在的字段在记录中不占用任何空间。
由于 MQPMR 没有固定布局,因此头, COPY 和 INCLUDE 文件中没有为受支持的编程语言提供该布局的定义。 应用程序员必须创建包含应用程序所需的字段的声明,并在 PutMsgRecFields 中设置标志以指示存在的字段。
字段
没有为此结构定义初始值,因为头, COPY和 INCLUDE 文件中没有为受支持的编程语言提供结构声明。 样本声明显示在需要所有字段时如何声明结构。
| 字段名称 | 字段描述 |
|---|---|
| MsgId | 消息标识 |
| CorrelId | 相关标识 |
| GroupId | 组标识 |
| FEEDBACK | 反馈或原因码 |
| AccountingToken | 记帐标记 |
语言声明
MQPMR 的 C 声明
typedef struct tagMQPMR MQPMR;
struct tagMQPMR {
MQBYTE24 MsgId; /* Message identifier */
MQBYTE24 CorrelId; /* Correlation identifier */
MQBYTE24 GroupId; /* Group identifier */
MQLONG Feedback; /* Feedback or reason code */
MQBYTE32 AccountingToken; /* Accounting token */
};
MQPMR 的 COBOL 声明
** MQPMR structure
10 MQPMR.
** Message identifier
15 MQPMR-MSGID PIC X(24).
** Correlation identifier
15 MQPMR-CORRELID PIC X(24).
** Group identifier
15 MQPMR-GROUPID PIC X(24).
** Feedback or reason code
15 MQPMR-FEEDBACK PIC S9(9) BINARY.
** Accounting token
15 MQPMR-ACCOUNTINGTOKEN PIC X(32).
MQPMR 的 PL/I 声明
dcl
1 MQPMR based,
3 MsgId char(24), /* Message identifier */
3 CorrelId char(24), /* Correlation identifier */
3 GroupId char(24), /* Group identifier */
3 Feedback fixed bin(31), /* Feedback or reason code */
3 AccountingToken char(32); /* Accounting token */
MQPMR 的 Visual Basic 声明
Type MQPMR
MsgId As MQBYTE24 'Message identifier'
CorrelId As MQBYTE24 'Correlation identifier'
GroupId As MQBYTE24 'Group identifier'
Feedback As Long 'Feedback or reason code'
AccountingToken As MQBYTE32 'Accounting token'
End Type