MQPMR-放置消息记录

将消息放入分发列表时,使用 MQPMR 结构为单个目标指定各种消息属性。 MQPMR 是 MQPUT 和 MQPUT1 调用的输入/输出结构。

可用性

MQPMR 结构在以下平台上可用:
  • [AIX]AIX®
  • [IBM i]IBM® i
  • [Linux]Linux®
  • [Windows]Windows
以及用于连接到这些系统的 IBM MQ 客户机。

字符集和编码

MQPMR 中的数据必须包含由 CodedCharSetId 队列管理器属性提供的字符集以及由 MQENC_NATIVE 提供的本地队列管理器的编码。 但是,如果应用程序作为 MQ 客户机运行,那么结构必须采用客户机的字符集和编码。

用法

通过在 MQPUT 或 MQPUT1 调用上提供这些结构的数组,可以在分发列表中为每个目标队列指定不同的值。 某些字段仅为输入,而其他字段为输入/输出。

注: 此结构异常,因为它没有固定布局。 此结构中的字段是可选的,每个字段的存在或不存在由 MQPMO 中 PutMsgRecFields 字段中的标志指示。 存在的字段 必须按以下顺序出现: :
  • MsgId
  • CorrelId
  • GroupId
  • Feedback
  • AccountingToken

不存在的字段在记录中不占用任何空间。

由于 MQPMR 没有固定布局,因此头, COPY 和 INCLUDE 文件中没有为受支持的编程语言提供该布局的定义。 应用程序员必须创建包含应用程序所需的字段的声明,并在 PutMsgRecFields 中设置标志以指示存在的字段。

字段

没有为此结构定义初始值,因为头, COPYINCLUDE 文件中没有为受支持的编程语言提供结构声明。 样本声明显示在需要所有字段时如何声明结构。

表 1. MQPMR 中的字段
字段名称 字段描述
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