IBM MQ 队列属性

可以为队列设置的属性取决于队列的类型。 不同类型的 IBM® MQ 队列具有不同的属性。 某些属性不适用于所有类型的队列,某些属性特定于集群队列,而某些属性特定于 z/OS® 队列。

以下各表列出了可以为所有类型的队列设置的属性:

对于每个属性,都有一个简短描述来说明在什么情况下您可能需要配置此属性。 这些表还给出了 ALTER QUEUE 和 DISPLAY QUEUE 命令的等效 MQSC 参数。 有关 MQSC 命令的更多信息,请参阅联机 IBM MQ 产品文档中的 MQSC 命令

“常规”页面

下表列出了您可以在 " 队列属性 " 对话框的 常规 页面上设置的属性。

属性 描述 MQSC 参数
队列名称 只读。 在创建了队列之后,您就不能更改其名称。 QNAME
队列类型 只读。 在创建了队列之后,您就不能更改其类型。 QTYPE
QSG 处置 (仅限z/OS 共享队列)只读。 队列的队列共享组处置。 指定对象的处置(在何处定义以及行为如何)。 在创建了队列之后,您就不能更改其处置。 Queue manager 表示对象定义仅对托管该对象定义的队列管理器可用; Group 表示对象定义存储在共享存储库中,并且队列共享组中的每个队列管理器都具有该定义的副本; Copy 表示对象定义是共享存储库中定义的队列管理器副本; Shared 表示对象定义存储在队列共享组的耦合设施上,并且可供队列共享组中的所有队列管理器使用。 QSGDISP
描述 输入此队列用途的有意义的描述。 请参阅 属性对话框中的字符串 DESCR
放入消息 要允许将消息放置到队列,请单击允许;要阻止将消息放置到队列,请单击禁止 PUT
取出消息 要允许从队列获取消息,请单击允许;要阻止从队列获取消息,请单击禁止 GET
缺省优先级 输入放入队列的消息的缺省优先级,范围是 0 - 9;0 是最低优先级。 DEFPRTY
缺省持久性 新队列的缺省持久性是非持久。 选择持久以指定使用 MQPER_PERSISTENCE_AS_Q_DEF 的应用程序所创建的消息成为持久消息。 选择非持久以指定使用 MQPER_PERSISTENCE_AS_Q_DEF 的应用程序所创建的消息成为非持久消息。 DEFPSIST
作用域 要将队列放置到单元目录中并使此单元内的所有队列管理器都知道此队列,请选择单元;要限制队列的作用域以便它不扩展至队列管理器之外,请选择队列管理器 作用域
用法 要使队列成为本地队列,请选择正常;要使队列成为传输队列,请选择传输。 当队列中存在消息时,不要更改“用法”属性。 USAGE
基本类型 选择别名队列所解析为的对象的类型(队列主题)。 缺省值为队列 TARGTYPE
远程队列 输入远程队列定义所指向的队列的名称。 RNAME
远程队列管理器 输入主管远程队列的队列管理器的名称。 RQMNAME
传输队列 输入本地队列管理器用来将消息发送至远程队列管理器的传输队列的名称。 XMITQ

“扩展”页面

下表列出了您可以在 " 队列属性 " 对话框的 扩展 页面上设置的属性。

属性 描述 MQSC 参数
最大队列深度 输入队列中允许的最大消息数。 指定一个范围在 0 至 999999999 之间的值。 MAXDEPTH
最大消息长度 输入队列中允许的最大消息长度(以字节计)。 在除 z/OS以外的所有平台上,指定从 0 到队列管理器的最大消息长度的值。 请参阅 队列管理器属性中的 Maximum message length 属性。 在 z/OS上,指定 0-100 MB 的值。 如果 QSG disposition 属性的值为 Shared,或者如果 Definition type 属性的值为 Shared dynamic,那么队列的 Max message length 值必须来自 0-4 MB。 在其他平台上,指定 0 - 4 MB 范围内的值。 MAXMSGL
可共享性 要共享队列以便应用程序的多个实例可打开此队列进行输入,请选择可共享;要限制队列以便一次只有应用程序的一个实例可打开队列,请选择不可共享 SHARE
缺省输入打开选项 要允许打开队列进行输入的应用程序对该队列上的消息进行互斥访问,请选择互斥;要允许打开队列进行输入的多个应用程序访问该队列上的消息,请选择共享 DEFSOPT
消息传递顺序 要指定按消息的优先级顺序从队列获取消息,请选择优先级。 要指定按消息放入队列的顺序从队列获取消息,请选择 FIFO(先进先出)。 MSGDLVSQ
保留时间间隔 输入从创建队列的日期和时间算起,可能需要该队列的小时数(范围是 0 - 999999999)。 您可使用此信息来确定不再需要此队列的时间。 不再需要此队列时,不会将它删除。 RETINTVL
管道名称 (仅限z/OS 共享队列) 只读。  
索引类型 (仅限z/OS 共享队列) 要指定队列管理器为提高队列上 MQGET 操作的速度而维护的索引类型,请选择以下五个选项之一:

: 不保留索引。 当按顺序检索消息时,请使用此项。 这是缺省值。

组标识:保留组标识的索引。 如果要以逻辑方式对消息组进行排序,那么必须使用此索引类型。

相关标识:保留相关标识的索引。 当使用相关标识字段作为 MQGET 调用上的选择标准来检索消息时,请使用此项。

消息标识: 保留消息标识的索引。 当使用消息标识字段作为 MQGET 调用上的选择标准来检索消息时,请使用此项。

消息令牌:保留消息令牌的索引。

 
定义类型 对于本地队列,此属性为只读: Predefined 表示队列是由操作员或向服务队列发送命令消息的授权应用程序创建的; Permanent dynamic 表示队列是由发出 MQOPEN 调用的应用程序使用对象描述符 (MQOD) 中指定的模型队列的名称创建的,并且队列是永久的; Temporary dynamic 表示队列是由发出 MQOPEN 调用的应用程序创建的,但队列是临时的; Shared dynamic (仅适用于z/OS ) 还表示队列是由发出 MQOPEN 调用的应用程序创建的,但该队列是永久队列,并且具有队列共享组处置 Shared

对于模型队列,此属性可编辑; 要指定从此模型队列创建永久动态队列,请选择 永久动态 (在 z/OS上,动态队列的处置为 Queue manager); 要指定创建临时动态队列,请选择 临时动态 (在 z/OS上,动态队列的处置为 Queue manager); 仅在 z/OS 上,要指定使用处置 Shared创建永久动态队列, 选择 共享动态

DEFTYPE
缺省提前读取 要在队列级别配置预读,请选择。 非持久消息由客户机在应用程序请求这些消息之前自动预读。 如果客户机异常结束或客户机应用程序未处理完它发送的所有消息,那么可能会丢失非持久消息。

要配置队列,使客户机不会自动读取非持久消息,请选择。 这是缺省值。 消息不会由客户机在应用程序请求这些消息之前自动预读。 仅当客户机请求时才预读消息。 如果客户机异常结束,那么最多可能丢失一条非持久消息。

要在队列级别禁用预读,请选择禁用。 无论客户机应用程序是否请求了预读,消息不会由客户机在应用程序请求这些消息之前预读。

DEFREADA
缺省 PUT 响应类型 放置消息的缺省响应类型。 要指定以同步方式放置响应,请选择同步。 要指定以异步方式放置响应,请选择异步 DEFPRESP
分发列表 要允许将分发列表消息放置到队列,请选择启用。 要阻止将分发列表消息放置到队列,请选择禁用 DISTL
属性控制

(仅适用于在本地队列、别名队列和模型队列上)

这将定义在指定 MQGMO_PROPERTIES_AS_Q_DEF 选项时使用 MQGET 命令从队列中检索的消息的属性所发生的情况。

要包含除消息描述符(或扩展)中包含的属性之外的所有消息属性,请选择全部全部值表示在将消息发送至远程队列管理器时,消息中会包含其自身的所有属性。 除消息描述符(或扩展)中的属性外,其他属性将放置在消息数据的一个或多个 MQRFH2 头中。

要允许要求消息数据的 MQRFH2 中具有与 JMS 相关的属性的应用程序在不加修改的情况下继续工作,请选择兼容性。 这是缺省值。 兼容性表示如果消息包含具有以下前缀的属性:mcd.jms.usr.、 或 mqext., 那么所有消息属性都将在 MQRFH2 头中传递到应用程序。 否则,将废弃除消息描述符(或扩展)中包含的属性之外的所有消息属性,并且应用程序再也无法访问这些属性。

要确保始终返回消息数据中 MQRFH2 头中的属性,请选择强制 MQRFH2。 将忽略执行 MQGET 调用时 MQGMO 结构的 MsgHandle 字段中提供的有效消息句柄。 无法通过该消息句柄访问消息的属性。

要废弃除消息描述符(或扩展)中包含的属性之外的所有消息属性,请选择。 此值使不支持消息属性的应用程序不会受消息中包含的任何属性的影响。

V6COMPAT - MQRFH2 头未由属性代码修改。 如果已提供消息属性,但未包含在原始 MQRFH2 头中,那么会在消息句柄中返回这些属性,否则会丢弃这些属性。 可通过提供某个 MQGMO_PROPERTIES 选项来覆盖此行为。

注: 对于传输队列 (这是 Usage 设置为 传输的本地队列) ,队列的 Property Control 属性不相关,并且是控制消息属性行为的相应通道对象上的 Property Control 属性。
PROPCTL
定制 Custom 参数保留用于在引入单独属性之前配置新功能部件。 可能的值为 0 或更多属性/值对的列表,采用 MQSC 样式语法,至少由 1 个空格分隔。
属性名称和值区分大小写,并且必须使用大写形式指定。 这些值可包含空格和括号,但不得包含单引号。 有效语法的示例有:
  • CUSTOM('')
  • CUSTOM('A(B)')
  • CUSTOM('C(D) E(F)')
  • CUSTOM('G(5000) H(9.20.4.6(1415))')

队列管理器会对值进行解析,但如果无法根据这些规则对字符串进行解析,或者字符串中包含无法识别的属性或值,那么队列管理器将忽略错误。

定制
集群通道名称 在集群传输队列上设置 Cluster channel names 参数,以覆盖集群发送方通道与集群传输队列的缺省关联。 您可以指定哪些集群发送方通道从该传输队列传输消息。

缺省值是所有集群发送方通道都从单个集群传输队列 SYSTEM.CLUSTER.TRANSMIT.QUEUE 传输消息。 您可以更改队列管理器的缺省值,以便所有集群发送方通道从不同的传输队列传输消息。 队列管理器属性为 Default cluster transmission queue。 需要时,队列管理器将自动创建不同的传输队列。 队列管理器不设置 Cluster channel name 参数

Cluster channel names 参数设置为单个集群发送方通道的名称,或设置为通用名称。 通用名称将多个集群发送方通道与该传输队列关联。 通用名称在名称中的任何位置都可以使用通配符 *。 所有与该名称匹配的集群发送方通道都从该传输队列传输消息,不会从任何其他传输队列。

z/OS上,如果设置了此参数,那么队列必须可共享,按相关标识建立索引,并且不能是动态队列或共享队列。

CLCHNAME

“集群”页面

下表列出了您可以在 " 队列属性 " 对话框的 集群 页面上设置的属性。 要在一个或多个集群中共享队列,编辑集群页面上的属性。

属性 描述 MQSC 参数
未在集群中共享 要指定此队列不能通过集群连接用于其他队列管理器,请选择此选项。 (不适用。)
在集群中共享 要使此队列仅可用于一个集群中的其他队列管理器,请选择此选项,然后输入此集群的名称。 聚类:
在集群列表中共享 要使此队列可用于多个集群中的其他队列管理器,请选择此选项,然后输入包含该组集群的名称列表的名称。 CLUSNL
缺省绑定类型 此属性指定当应用程序在 MQOPEN 调用中指定 MQ00_BIND_AS_Q_DEF 并且队列是集群队列时要使用的绑定。 要在队列打开时将队列句柄绑定至集群队列的特定实例,请选择打开时;要在使用 MQPUT 放置消息时允许队列管理器选择特定队列实例并且在以后需要时可更改此选择,请选择不固定 DEFBIND
CLWL 队列排名 此属性是集群工作负载 (CLWL) 队列排名。 输入队列在集群中的排名,范围是 0 - 9;0 是最低优先级。 有关更多信息,请参阅 IBM MQ 联机产品文档中的 分布式排队和集群 CLWLRANK
CLWL 队列优先级 此属性是集群工作负载 (CLWL) 队列优先级。 输入队列在集群中的优先级,范围是 0 - 9;0 是最低优先级。 有关更多信息,请参阅 IBM MQ 联机产品文档中的 分布式排队和集群 CLWLPRTY
CLWL 使用队列 集群工作负载 (CLWL) 使用队列属性。 它定义 MQPUT 在目标队列具有本地实例并且还至少具有一个远程集群实例时的行为。 如果放置操作起源于集群通道,那么此属性不适用。 选择以下某个选项:

选择队列管理器以使用由所选队列所属的队列管理器的 CLWL use queue 属性指定的值。 这是缺省值。

选择任何以使用本地队列和远程队列。

选择本地以仅使用本地队列。

有关更多信息,请参阅 IBM MQ 联机产品文档中的 分布式排队和集群
CLWLUSEQ

“触发”页面

下表列出了您可以在 " 队列属性 " 对话框的 触发 页面上设置的属性。 要配置用于触发的队列,编辑触发页面上的属性。

属性 描述 MQSC 参数
触发器控制 要在队列上启用触发,请选择打开,然后为此队列配置其他触发器属性;要在队列上禁用触发,请选择关闭 TRIGGER
触发器类型 要在队列的当前深度从 0 变为 1 时触发事件,请选择第一次;要在超出队列深度阈值时触发事件,请选择深度;要在每次将消息放入队列时触发事件,请选择每次 TRIGTYPE
触发器深度 输入必须放置到队列才能触发事件的消息数。 TRIGDEPTH
触发器消息优先级 输入消息要对触发器事件进行计数所必须具有的最低优先级,范围是 1 - 9。 当队列管理器确定是否创建触发器消息时,它会忽略具有较低优先级的消息。 要对触发器事件的所有消息进行计数,输入 0。 TRIGMPRI
触发器数据 输入自由格式的数据,在此队列导致触发器事件时,队列管理器将把这些数据插入触发器消息。 此数据对队列管理器不重要。 此数据对于处理启动队列的触发器监视器应用程序或触发器监视器启动的应用程序有意义。 TRIGDATA
初始队列 输入启动队列的名称。 当符合触发器事件的条件时,队列管理器将触发器消息放置到启动队列。 INITQ
进程名称 IBM MQ 进程的局部名。 此参数仅在本地队列和模型队列上才受支持。

这是进程实例的名称,它标识了在发生触发器事件时由队列管理器启动的应用程序。 在定义本地队列时不必定义该进程,但该进程必须可用于要发生的触发器事件。

如果该队列是传输队列,那么该进程定义包含要启动的通道的名称。 此参数是可选的,如果您未指定进程名称,那么通道名称将取自为 TRIGDATA 参数指定的值。
PROCESS

“事件”页面

下表列出了您可以在 " 队列属性 " 对话框的 事件 页面上设置的属性。 要配置队列管理器以生成事件来响应队列上的某种条件,编辑事件页面上的属性。

属性 描述 MQSC 参数
最大队列深度事件 在将消息放置到队列但由于队列已满而遭到拒绝时,如果要生成“队列满”事件,请选择启用 QDPMAXEV
高队列深度事件 要在将消息放入队列导致队列深度大于或等于 Queue depth high limit 属性的值时生成 "队列深度过高" 事件,请选择 已启用 QDPHIEV
队列深度上限 这是用作队列深度上限的最大队列深度的百分比值。 输入最大队列深度限制百分比,队列管理器将当前队列深度与此限制百分比进行比较以确定是否生成“队列深度太深”事件。 QDEPTHHI
低队列深度事件 要在从队列中检索消息导致队列深度小于或等于 Queue depth low limit 属性的值时生成 "队列深度下限" 事件,请选择 已启用 QDPLOEV
队列深度下限 这是用作队列深度下限的最大队列深度的百分比值。 输入最小队列深度限制百分比,队列管理器将当前队列深度与此限制百分比进行比较以确定是否生成“队列深度不够”事件。 QDEPTHLO
队列服务时间间隔事件 要在检查指示至少在 Queue service interval 属性指示的时间内未从队列中检索消息时生成 "队列服务时间间隔高" 事件,请选择 ; 要在检查指示已在 Queue service interval 属性指示的时间内从队列中检索消息时生成 "队列服务时间间隔确定" 事件,请选择 确定; 要禁用 "队列服务时间间隔" 事件,请选择 QSVCIEV
队列服务时间间隔 输入服务时间间隔(毫秒),范围是 0 - 999999999。 队列管理器使用此值来确定是生成“队列服务时间间隔太长”事件还是生成“队列服务时间间隔正常”事件。 QSVCINT

“存储器”页面

下表列出了您可以在 " 队列属性 " 对话框的 存储器 页面上设置的属性。 要配置 IBM MQ 如何处理回退的消息,请编辑 " 存储器 " 页面上的属性。

属性 描述 MQSC 参数
回退重新排队队列 如果消息回退的次数超过 Backout threshold 属性中指定的次数,请输入要将其传输到的队列的名称。 BOQNAME
回退阈值 输入在将消息传输到 Backout requeue queue 属性中指定的回退队列之前可以回退消息的次数。 BOTHRESH
固化获取回退 要确保在重新启动队列管理器时准确保留回退计数(MQGET 调用检索消息并随后回退消息的次数),请选择固化。 固化计数对性能产生不利影响,因此,只有在精确计数对您来说很重要的情况下,才选择固化。 如果精确计数并不重要,请选择不固化 HARDENBO
NPM 类 此属性指定废弃队列上非持久消息的情况。 要指定在重新启动队列管理器时废弃非持久消息,请选择正常;这仅对非共享队列有效。 要指定队列管理器应该尝试使非持久消息在队列的生存期内成为持久消息,请选择;这对非共享队列和共享队列都有效;在发生故障时,非持久消息仍可能丢失。 NPMCLASS
存储类名称 (仅限z/OS 共享队列) 这是将队列映射到页集的存储类的名称。 队列的消息存储在该页集上。 您可更改此属性,但首先队列必须是空的并且已关闭。 该存储类名必须以大写形式输入。 STGCLASS
耦合设施名称 (仅限z/OS 共享队列) 这是存储队列消息的耦合设施结构的名称。 您可更改此属性,但首先队列必须是空的并且已关闭。 CFSTRUCT

“统计信息”页面

下表列出了 " 队列属性 " 对话框的 " 统计信息 " 页面上的属性。 统计信息页面显示有关队列的历史记录的信息。 并非可以编辑所有属性。

属性 描述 MQSC 参数
创建日期 只读。 这是创建队列的日期。 CRDATE
创建时间 只读。 这是创建队列的时间。 CRTIME
打开输入计数 只读。 这是当前连接至队列以从此队列获取消息的应用程序数。 IPPROCS
打开输出计数 只读。 这是当前连接至队列以将消息放置到此队列的应用程序数。 OPPROCS
当前队列深度 只读。 这是当前在队列上的消息数。 CURDEPTH
变更日期 只读。 这是最近一次变更队列的属性的日期。 ALTDATE
变更时间 只读。 这是最近一次变更队列的属性的时间。 ALTTIME
队列监视

您可以配置 IBM MQ 以收集有关队列当前性能的联机监视数据。 要继承队列管理器的 Queue monitoring 属性的值 (请参阅 队列管理器属性) ,请选择 队列管理器。 如果队列管理器的 Queue monitoring 属性为 None,那么将忽略队列的 Queue monitoring 属性。

如果队列管理器的 Queue monitoring 属性不是 None:
  • 要覆盖队列管理器的设置并阻止此队列的数据收集,请选择关闭
  • 要以低速率收集数据,请选择
  • 要以中等速率收集数据,请选择
  • 要以高速率收集数据,请选择
有关更多信息,请参阅 IBM MQ 联机产品文档中的 监视和性能
MONQ
队列统计 您可以配置 IBM MQ 以收集有关队列活动的统计信息数据。 要继承队列管理器的 Queue statistics 属性的值 (请参阅 队列管理器属性) ,请选择 队列管理器。 如果队列管理器的 Queue statistics 属性为 None,那么将忽略队列的 Queue statistics 属性。 如果队列管理器的 Queue statistics 属性不是 None: 要覆盖队列管理器的设置并阻止此队列的数据收集,请选择 关闭; 要覆盖队列管理器的设置并收集数据,请选择 开启。 有关更多信息,请参阅 IBM MQ 联机产品文档中的 监视和性能 STATQ
队列记帐 您可以配置 IBM MQ 以收集有关此队列的连接活动的统计数据。 要继承队列管理器的 Queue accounting 属性的值 (请参阅 队列管理器属性) ,请选择 队列管理器。 如果队列管理器的 Queue accounting 属性为 None,那么将忽略队列的 Queue accounting 属性。 如果队列管理器的 Queue accounting 属性不是 None: 要覆盖队列管理器的设置并阻止此队列的数据收集,请选择 关闭; 要覆盖队列管理器的设置并收集数据,请选择 开启。 有关更多信息,请参阅 IBM MQ 联机产品文档中的 监视和性能 ACCTQ