MQGMO-Get-消息选项

MQGMO 结构允许应用程序控制如何从队列中除去消息。 此结构是 MQGET 调用上的输入/输出参数。

版本

MQGMO 的当前版本为 MQGMO_VERSION_4。 某些字段仅在特定版本的 MQGMO 中可用。 如果需要在多个环境之间移植应用程序,那么必须确保 MQGMO 的版本在所有环境之间一致。 仅在结构的特定版本中存在的字段在 MQGMO-Get-message 选项 和字段描述中标识为此类字段。

为受支持的编程语言提供的头 COPY 和 INCLUDE 文件包含环境支持的最新版本的 MQGMO ,但 Version 字段的初始值设置为 MQGMO_VERSION_1。 要使用 version-1 结构中不存在的字段,请将 Version 字段设置为所需版本的版本号。

字符集和编码

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

字段

注: 在下表中,字段按用法 (而不是按字母顺序) 进行分组。 子主题遵循相同的顺序。
表 1. MQGMO 的 MQGMO 中的字段
字段名称和描述 常量的名称 常量的初始值 (如果有)
StrucId (结构标识) MQGMO_STRUC_ID 'GMO¬'
版本 (结构版本号) MQGMO_VERSION_1 1
MQGMO-"选项" 字段 (用于控制 MQGET 操作的选项) MQGMO_NO_WAIT 0
WaitInterval (等待时间间隔) None 0
Signal1 (信号) None z/OS® 上的空指针; 0 否则
Signal2 (信号标识) None 0
ResolvedQName (目标队列的已解析名称) None 空字符串或空白
注: 如果 Version 小于 MQGMO_VERSION_2,那么将忽略其余字段。
MatchOptions (控制用于 MQGET 的选择条件的选项) MQMO_MATCH_MSG_ID + MQMO_MATCH_CORREL_ID 3
GroupStatus (指示检索的消息是否在组中的标志) MQGS_NOT_IN_GROUP '¬'
SegmentStatus (指示检索的消息是否为逻辑消息的段的标志) MQSS_NOT_A_SEGMENT '¬'
分段 (指示检索的消息是否允许进一步分段的标志) MQSEG_禁止 '¬'
Reserved1 (保留) None '¬'
注: 如果 Version 小于 MQGMO_VERSION_3,那么将忽略其余字段。
MsgToken (消息令牌) MQMTOK_NONE Null
ReturnedLength (以返回的消息数据的字节为单位的长度) MQRL_UNDEFINED -1
注: 如果 Version 小于 MQGMO_VERSION_4,那么将忽略其余字段。
Reserved2 (保留) None '¬'
MsgHandle (要使用从队列中检索的消息的属性填充的消息的句柄) MQHM_NONE 0
备注信息:
  1. 符号 ¬ 表示单个空白字符。
  2. 值 Null 字符串或空白表示 C 中的空字符串,而空白字符表示其他编程语言中的空字符。
  3. 在 C 编程语言中,宏变量 MQGMO_DEFAULT 包含表中列出的值。 它可以通过以下方式用于为结构中的字段提供初始值:
    MQGMO MyGMO = {MQGMO_DEFAULT};
    

语言声明

MQGMO 的 C 声明

typedef struct tagMQGMO MQGMO;
struct tagMQGMO {
  MQCHAR4   StrucId;         /* Structure identifier */
  MQLONG    Version;         /* Structure version number */
  MQLONG    Options;         /* Options that control the action of */
                                MQGET */
  MQLONG    WaitInterval;    /* Wait interval */
  MQLONG    Signal1;         /* Signal */
  MQLONG    Signal2;         /* Signal identifier */
  MQCHAR48  ResolvedQName;   /* Resolved name of destination queue */
  /* Ver:1 */
  MQLONG    MatchOptions;    /* Options controlling selection */
                                criteria used for MQGET */
  MQCHAR    GroupStatus;     /* Flag indicating whether message */
                                retrieved is in a group */
  MQCHAR    SegmentStatus;   /* Flag indicating whether message */
                                retrieved is a segment of a logical */
                                message */
  MQCHAR    Segmentation;    /* Flag indicating whether further */
                                segmentation is allowed for the */
                                message retrieved */
  MQCHAR    Reserved1;       /* Reserved */
  /* Ver:2 */
  MQBYTE16  MsgToken;        /* Message token */
  MQLONG    ReturnedLength;  /* Length of message data returned */
                                (bytes) */
  /* Ver:3 */
  MQLONG    Reserved2;       /* Reserved */
  MQHMSG    MsgHandle;       /* Message handle */
  /* Ver:4 */
};
注:z/OS上, Signal1 字段声明为 PMQLONG

MQGMO 的 COBOL 声明

**   MQGMO structure
  10 MQGMO.
**    Structure identifier
   15 MQGMO-STRUCID        PIC X(4).
**    Structure version number
   15 MQGMO-VERSION        PIC S9(9) BINARY.
**    Options that control the action of MQGET
   15 MQGMO-OPTIONS        PIC S9(9) BINARY.
**    Wait interval
   15 MQGMO-WAITINTERVAL   PIC S9(9) BINARY.
**    Signal
   15 MQGMO-SIGNAL1        PIC S9(9) BINARY.
**    Signal identifier
   15 MQGMO-SIGNAL2        PIC S9(9) BINARY.
**    Resolved name of destination queue
   15 MQGMO-RESOLVEDQNAME  PIC X(48).
**    Options controlling selection criteria used for MQGET
   15 MQGMO-MATCHOPTIONS   PIC S9(9) BINARY.
**    Flag indicating whether message retrieved is in a group
   15 MQGMO-GROUPSTATUS    PIC X.
**    Flag indicating whether message retrieved is a segment of a
**    logical message
   15 MQGMO-SEGMENTSTATUS  PIC X.
**    Flag indicating whether further segmentation is allowed for the
**    message retrieved
   15 MQGMO-SEGMENTATION   PIC X.
**    Reserved
   15 MQGMO-RESERVED1      PIC X.
**    Message token
   15 MQGMO-MSGTOKEN       PIC X(16).
**    Length of message data returned (bytes)
   15 MQGMO-RETURNEDLENGTH PIC S9(9) BINARY.
**    Reserved
   15 MQGMO-RESERVED2      PIC S9(9) BINARY.
**    Message handle
   15 MQGMO-MSGHANDLE      PIC S9(18) BINARY.
注:z/OS上, Signal1 字段声明为 POINTER

MQGMO 的 PL/I 声明

dcl
 1 MQGMO based,
  3 StrucId        char(4),       /* Structure identifier */
  3 Version        fixed bin(31), /* Structure version number */
  3 Options        fixed bin(31), /* Options that control the action of
                                     MQGET */
  3 WaitInterval   fixed bin(31), /* Wait interval */
  3 Signal1        fixed bin(31), /* Signal */
  3 Signal2        fixed bin(31), /* Signal identifier */
  3 ResolvedQName  char(48),      /* Resolved name of destination
                                     queue */
  3 MatchOptions   fixed bin(31), /* Options controlling selection
                                     criteria used for MQGET */
  3 GroupStatus    char(1),       /* Flag indicating whether message
                                     retrieved is in a group */
  3 SegmentStatus  char(1),       /* Flag indicating whether message
                                     retrieved is a segment of a logical
                                     message */
  3 Segmentation   char(1),       /* Flag indicating whether further
                                     segmentation is allowed for the
                                     message retrieved */
  3 Reserved1      char(1),       /* Reserved */
  3 MsgToken       char(16),      /* Message token */
  3 ReturnedLength fixed bin(31); /* Length of message data returned
                                     (bytes) */
  3 Reserved2      fixed bin(31); /* Reserved */
  3 MsgHandle      fixed bin(63); /* Message handle */
注:z/OS上, Signal1 字段声明为 pointer

MQGMO 的 High Level Assembler 声明

MQGMO                 DSECT
MQGMO_STRUCID         DS   CL4   Structure identifier
MQGMO_VERSION         DS   F     Structure version number
MQGMO_OPTIONS         DS   F     Options that control the action of
*                                MQGET
MQGMO_WAITINTERVAL    DS   F     Wait interval
MQGMO_SIGNAL1         DS   F     Signal
MQGMO_SIGNAL2         DS   F     Signal identifier
MQGMO_RESOLVEDQNAME   DS   CL48  Resolved name of destination queue
MQGMO_MATCHOPTIONS    DS   F     Options controlling selection criteria
*                                used for MQGET
MQGMO_GROUPSTATUS     DS   CL1   Flag indicating whether message
*                                retrieved is in a group
MQGMO_SEGMENTSTATUS   DS   CL1   Flag indicating whether message
*                                retrieved is a segment of a logical
*                                message
MQGMO_SEGMENTATION    DS   CL1   Flag indicating whether further
*                                segmentation is allowed for the message
*                                retrieved
MQGMO_RESERVED1       DS   CL1   Reserved
MQGMO_MSGTOKEN        DS   XL16  Message token
MQGMO_RETURNEDLENGTH  DS   F     Length of message data returned (bytes)
MQGMO_RESERVED2       DS   F     Reserved
MQGMO_MSGHANDLE       DS   D     Message handle
MQGMO_LENGTH          EQU  *-MQGMO
                      ORG  MQGMO
MQGMO_AREA            DS   CL(MQGMO_LENGTH)

MQGMO 的 High Level Assembler 声明

Type MQGMO
  StrucId        As String*4  'Structure identifier'
  Version        As Long      'Structure version number'
  Options        As Long      'Options that control the action of MQGET'
  WaitInterval   As Long      'Wait interval'
  Signal1        As Long      'Signal'
  Signal2        As Long      'Signal identifier'
  ResolvedQName  As String*48 'Resolved name of destination queue'
  MatchOptions   As Long      'Options controlling selection criteria'
                              'used for MQGET'
  GroupStatus    As String*1  'Flag indicating whether message'
                              'retrieved is in a group'
  SegmentStatus  As String*1  'Flag indicating whether message'
                              'retrieved is a segment of a logical'
                              'message'
  Segmentation   As String*1  'Flag indicating whether further'
                              'segmentation is allowed for the message'
                              'retrieved'
  Reserved1      As String*1  'Reserved'
  MsgToken       As MQBYTE16  'Message token'
  ReturnedLength As Long      'Length of message data returned (bytes)'
End Type

MQGMOPROPCTL 通道选项

使用 PROPCTL 通道属性可控制将哪些消息属性包含在从较早版本的 IBM MQ从 IBM® MQ 9.2 队列管理器发送到伙伴队列管理器的消息中。

表 2. 通道消息属性属性设置
PROPCTL 描述
ALL

如果从较早版本连接到伙伴队列管理器的应用程序能够处理 IBM MQ 9.2 应用程序放置在消息中的任何属性,请使用此选项。

MQRFH2中放置的任何 "名称/值" 对外,还会将所有属性发送到伙伴队列管理器。

您必须考虑两个应用程序设计问题:
  1. 连接到伙伴队列管理器的应用程序必须能够处理包含在 IBM MQ 9.2 队列管理器上生成的 MQRFH2 头的消息。
  2. 连接到伙伴队列管理器的应用程序必须正确处理使用 MQPD_SUPPORT_REQUIRED 标记的新消息属性。

通过设置 ALL 通道选项, JMS 应用程序可以使用该通道在 IBM MQ 9.2 与较低版本之间进行互操作。 使用消息属性的新 IBM MQ 9.2 应用程序可以与较低版本的应用程序进行互操作,具体取决于较低版本的应用程序如何处理 MQRFH2 头。

COMPAT

在某些情况下,使用此选项将消息属性发送到连接到较早版本伙伴队列管理器的应用程序,但不发送到所有应用程序。 仅当满足以下两个条件时,才会发送消息属性:

  1. 不得将任何属性标记为需要消息属性处理。
  2. 至少一个消息属性必须位于 reserved 文件夹中; 请参阅 注释

通过设置 COMPAT 通道选项, JMS 应用程序可以使用该通道在 IBM MQ 9.2 与较低版本之间进行互操作。

通道不可用于每个使用消息属性的应用程序,仅可用于那些使用保留文件夹的应用程序。 有关是否发送消息或属性的规则如下:

  1. 如果消息具有属性,但没有任何属性与 reserved 文件夹相关联,那么不会发送任何消息属性。
  2. 如果已在 reserved 属性文件夹中创建任何消息属性,那么将发送与该消息关联的所有消息属性。 但是:
    1. 如果将任何消息属性标记为需要支持 MQPD_SUPPORT_REQUIREDMQPD_SUPPORT_REQUIRED_IF_LOCAL,那么将拒绝整个消息。 将根据其报告选项的值返回,废弃或发送到死信队列。
    2. 如果未将任何消息属性标记为需要支持,那么可能不会发送单个属性。 如果任何消息属性描述符字段设置为非缺省值,那么不会发送个别属性。 仍将发送该消息。 非缺省属性描述符字段值的示例为 MQPD_USER_CONTEXT
注: reserved 文件夹名称以 mcd.jms.usr.mqext.开头。 将为使用 JMS 接口的应用程序创建这些文件夹。 在 IBM MQ 9.2 中,放置在这些文件夹中的任何 "名称/值" 对都将被视为消息属性。

除了放入 MQRFH2 头中的任何 "名称/值" 对外,还会在 MQRFH2 头中发送消息属性。 只要消息未被拒绝,就会发送放在 MQRFH2 头中的任何 "名称/值" 对。

NONE

使用此选项可防止将任何消息属性发送到连接到较早版本伙伴队列管理器的应用程序。 仍将发送包含 "名称/值" 对和消息属性的 MQRFH2 ,但仅与 "名称/值" 对一起发送。

在设置了 NONE 通道选项的情况下,将 JMS 消息作为 JMSTextMessage 或没有任何 JMS 消息属性的 JMSBytesMessage 发送。 如果较早版本的应用程序可以忽略 IBM MQ 9.2 应用程序中设置的所有属性,那么它可以与其进行互操作。

MQGMOPROPCTL 队列选项

使用 PROPCTL 队列属性来控制如何将消息属性返回到调用 MQGET 而不设置任何 MQGMO 消息属性选项的应用程序。

表 3. 队列消息属性属性设置
PROPCTL 描述
ALL

使用 ALL 选项,以便从同一队列读取消息的不同应用程序可以通过不同方式处理消息。

  • 未从较低版本迁移的应用程序可以继续直接读取 MQRFH2 。 属性可在 MQRFH2 头中直接访问。

    您必须修改应用程序以处理任何新属性和新属性属性。 应用程序可能受布局和 MQRFH2 头数的更改影响。 可能会除去某些文件夹属性,或者 IBM MQ 报告在较早版本中忽略的 MQRFH2 头布局中的错误。

  • 新的或已更改的应用程序可以使用消息属性 MQI 来查询消息属性,并直接读取 MQRFH2 头中的 "名称/值" 对。
消息中的所有属性都将返回到应用程序。
  • 如果应用程序调用 MQCRTMH 以创建消息句柄,那么它必须使用 MQINQMP来查询消息属性。 非消息属性的 "名称/值" 对仍保留在 MQRFH2中,这将除去任何消息属性。
  • 如果应用程序未创建消息句柄,那么所有消息属性和名称/值对都保留在 MQRFH2中。

仅当接收应用程序未设置 MQGMO_PROPERTIES 选项或已将其设置为 MQGMO_PROPERTIES_AS_Q_DEF时, ALL 才会产生此影响。

COMPAT (缺省值)

COMPAT 是缺省选项。 如果未设置 GMO_PROPERTIES_* ,那么将采用 COMPAT 作为先前版本中未修改的应用程序。 通过缺省为 COMPAT 选项,未显式创建 MQRFH2的较低版本应用程序将在 IBM MQ 9.2上工作而不进行更改。

如果您已编写较早版本的应用程序 MQI 应用程序以读取 JMS 消息,请使用此选项。

  • 存储在 MQRFH2 头中的 JMS 属性将返回到名称以 mcd.jms.usr.mqext开头的文件夹中的 MQRFH2 头中的应用程序。
  • 如果消息具有 JMS 个文件夹,并且 IBM MQ 9.2 应用程序向消息添加了新的属性文件夹,那么还会在 MQRFH2中返回这些属性。 因此,必须修改应用程序以处理任何新属性和新属性属性。 未修改的应用程序可能受布局和 MQRFH2 头数的更改影响。 它可能会发现某些文件夹属性已除去,或者 IBM MQMQRFH2 头的布局中发现错误,在较早版本中已忽略这些错误。
    注: 在此场景中,无论应用程序是连接到较早版本还是连接到 IBM MQ 9.2 队列管理器,应用程序的行为都相同。 如果通道 PROPCTL 属性设置为 COMPATALL ,那么将在消息中向较早版本的伙伴队列管理器发送任何新的消息属性。
  • 如果消息不是 JMS 消息,但包含其他属性,那么这些属性不会返回到 MQRFH2 头中的应用程序。 1
  • 此选项还允许显式创建 MQRFH2 的较早版本应用程序在许多情况下正常工作。 例如,创建包含 JMS 消息属性的 MQRFH2 的 MQI 程序继续正常工作。 如果在没有 JMS 消息属性的情况下创建了消息,但使用了一些其他 MQRFH2 文件夹,那么会将这些文件夹返回到应用程序。 仅当文件夹是消息属性文件夹时,才会从 MQRFH2中除去那些特定文件夹。 消息属性文件夹通过具有新文件夹属性 content='properties'进行标识,或者是名称列示在 已定义的属性文件夹名称未分组的属性文件夹名称中的文件夹。
  • 如果应用程序调用 MQCRTMH 以创建消息句柄,那么它必须使用 MQINQMP来查询消息属性。 将从 MQRFH2 头中除去消息属性。 非消息属性的 "名称/值" 对仍保留在 MQRFH2中。
  • 如果应用程序调用 MQCRTMH 以创建消息句柄,那么它可以查询所有消息属性,而不考虑消息是否具有 JMS 文件夹。
  • 如果应用程序未创建消息句柄,那么所有消息属性和名称/值对都保留在 MQRFH2中。

如果消息包含新的用户属性文件夹,那么您可以推断消息是由新的或已更改的 IBM MQ 9.2 应用程序创建的。 如果接收应用程序要直接在 MQRFH2中处理这些新属性,那么必须修改应用程序以使用 ALL 选项。 在设置了缺省 COMPAT 选项的情况下,未修改的应用程序将继续处理 MQRFH2的其余部分,而不使用 IBM MQ 9.2 属性。

PROPCTL 接口的目的是支持读取 MQRFH2 文件夹的旧应用程序以及使用消息属性接口的新应用程序和已更改的应用程序。 旨在让新应用程序将消息属性接口用于所有用户消息属性,并避免直接读取和写入 MQRFH2 头。

仅当接收应用程序未设置 MQGMO_PROPERTIES 选项或将其设置为 MQGMO_PROPERTIES_AS_Q_DEF时, COMPAT 才具有此作用。

FORCE

FORCE 选项将所有消息属性放入 MQRFH2 头中。 MQRFH2 头中的所有消息属性和名称/值对都保留在消息中。 不会从 MQRFH2中除去消息属性,也不会通过消息句柄提供消息属性。 选择 FORCE 选项的作用是使新迁移的应用程序能够从 MQRFH2 头读取消息属性。

假设您已修改应用程序以处理 IBM MQ 9.2 消息属性,但也保留了它直接使用 MQRFH2 头的能力,就像以前一样。 您可以通过最初将 PROPCTL 队列属性设置为 FORCE来决定何时将应用程序切换为使用消息属性。 当您准备好开始使用消息属性时,将 PROPCTL 队列属性设置为其他值。 如果应用程序中的新功能未按预期运行,请将 PROPCTL 选项设置回 FORCE

仅当接收应用程序未设置 MQGMO_PROPERTIES 选项或将其设置为 MQGMO_PROPERTIES_AS_Q_DEF时, FORCE 才具有此作用。

NONE
使用 NONE 选项,以便现有应用程序可以处理消息 (忽略所有消息属性) ,新的或已更改的应用程序可以查询消息属性。
  • 如果应用程序调用 MQCRTMH 以创建消息句柄,那么它必须使用 MQINQMP来查询消息属性。 非消息属性的 "名称/值" 对仍保留在 MQRFH2中,这将除去任何消息属性。
  • 如果应用程序未创建消息句柄,那么将从 MQRFH2中除去所有消息属性。 MQRFH2 头中的 "名称/值" 对仍保留在消息中。

仅当接收应用程序未设置 MQGMO_PROPERTIES 选项或将其设置为 MQGMO_PROPERTIES_AS_Q_DEF时, NONE 才会产生此影响。

V6COMPAT

使用此选项可接收与发送的格式相同的 MQRFH2 。 如果发送应用程序或队列管理器创建其他消息属性,那么将在消息句柄中返回这些属性。

必须在发送队列和接收队列以及任何中间传输队列上都设置此选项。 它覆盖队列名称解析路径中的队列定义上设置的任何其他 PROPCTL 选项。

仅在特殊情况下使用 V6COMPAT 选项。 例如,如果要将应用程序从较低版本迁移到 IBM MQ 9.2,那么该选项很有价值,因为它会保留较低版本的行为。 该选项可能会对消息吞吐量产生影响。 管理也比较困难; 您需要确保在发送方,接收方和中间传输队列上设置该选项。

仅当接收应用程序未设置 MQGMO_PROPERTIES 选项或将其设置为 MQGMO_PROPERTIES_AS_Q_DEF时, V6COMPAT 才具有此效果。

有关消息属性和名-值对的更多信息,请参阅NameValueData(MQCHARn)

MQGMO 的消息属性选项

使用 MQGMO 消息属性选项可控制如何将消息属性返回到应用程序。

表 4. MQGMO 消息属性选项设置
MQGMO 选项 描述
MQGMO_PROPERTIES_AS_Q_DEF

从同一队列读取且未设置 GMO_PROPERTIES_*IBM MQ 应用程序以不同方式接收消息属性。 未创建消息句柄的 IBM MQ 应用程序由队列 PROPCTL 属性控制。 IBM MQ 应用程序可以选择在 MQRFH2中接收消息属性,或者创建消息句柄并查询消息属性。 如果应用程序创建消息句柄,那么将从 MQRFH2中除去属性。

  • 未设置 GMO_PROPERTIES_* 或将其设置为 MQGMO_PROPERTIES_AS_Q_DEF 的新的或已更改的 IBM MQ 应用程序可以选择查询消息属性。 必须设置 MQCRTMH 才能使用 MQINQMP MQI 调用创建消息句柄和查询消息属性。
  • 如果新的或已更改的应用程序未创建消息句柄,那么它必须读取它直接从 MQRFH2 头接收的任何消息属性。
  • 如果队列属性 PROPCTL 设置为 FORCE,那么消息句柄中不会返回任何属性。 所有属性都在 MQRFH2 头中返回。
  • 如果队列属性 PROPCTL 设置为 NONECOMPAT,那么创建消息句柄的 IBM MQ 应用程序将接收所有消息属性。
MQGMO_PROPERTIES_IN_HANDLE

强制应用程序使用消息属性。 使用此选项可检测修改后的应用程序是否未能创建消息句柄。 应用程序可能正在尝试直接从 MQRFH2读取消息属性,而不是调用 MQINQMP

MQGMO_NO_PROPERTIES
  • 将除去所有属性。 将除去队列管理器生成的属性,例如 JMS 属性。
  • 即使创建了消息句柄,也会除去属性。 其他 MQRFH2 文件夹中的 "名称/值" 对在消息数据中可用。

MQGMO_PROPERTIES_FORCE_MQRFH2

即使创建了消息句柄,也会在 MQRFH2 头中返回属性。

  • 即使创建了消息句柄, MQINQMP 也不会返回任何消息属性。 如果查询了属性,那么将返回 MQRC_PROPERTY_NOT_AVAILABLE
MQGMO_PROPERTIES_COMPATIBILITY

如果消息来自 JMS 客户机,那么将在 MQRFH2 头中返回 JMS 属性。 创建消息句柄的新 IBM MQ 应用程序或已修改的应用程序的行为不同。

  • 如果消息包含 mcd.jms.usr.mqext 文件夹,那么将返回任何消息属性文件夹中的所有属性。
  • 如果消息包含属性文件夹,但不包含 mcd.jms.usr.mqext 文件夹,那么不会在 MQRFH2中返回任何消息属性。
  • 如果新的或已修改的 IBM MQ 应用程序创建消息句柄,请使用 MQINQMP MQI 调用来查询消息属性。 将从 MQRFH2中除去所有消息属性。
  • 如果新的或已修改的 IBM MQ 应用程序创建消息句柄,那么可以查询消息中的所有属性。 即使消息不包含 mcd.jms.usr.mqext 文件夹,所有消息属性也可查询。
1 存在由 IBM MQ classes for JMS 创建的特定属性文件夹指示 JMS 消息。 属性文件夹为 mcd.jms.usr.mqext