更改,复制和创建队列

"更改队列" 命令更改现有队列定义。 复制和创建队列命令创建新的队列定义-复制命令使用现有队列定义的属性值。

HP Integrity NonStop Server IBM® i UNIX 和 Linux® Windows z/OS®
X X X X X

"更改队列" 命令 MQCMD_CHANGE_Q 更改现有 IBM MQ 队列的指定属性。 对于省略的任何可选参数,该值不会更改。

"复制队列" 命令 MQCMD_COPY_Q 创建相同类型的队列定义。 对于未在命令中指定的属性,它使用现有队列定义的属性值。

"创建队列" 命令 MQCMD_CREATE_Q 创建具有指定属性的队列定义。 未指定的所有属性都设置为所创建的队列类型的缺省值。

必需参数 (更改和创建队列)

QName (MQCFST)
队列名称 (参数标识: MQCA_Q_NAME)。

要更改的队列名称。 字符串的最大长度为 MQ_Q_NAME_LENGTH

必需参数 (复制队列)

FromQName (MQCFST)
源队列名称 (参数标识: MQCACF_FROM_Q_NAME)。

指定现有队列定义的名称。

[z/OS]z/OS上,队列管理器将搜索具有您指定的名称以及要从中复制的处置 MQQSGD_Q_MGRMQQSGD_COPYMQQSGD_SHARED 的对象。 如果为 QSGDisposition 指定了值 MQQSGD_COPY ,那么将忽略此参数。 在这种情况下,将搜索具有由 ToQName 和处置 MQQSGD_GROUP 指定的名称的对象以从中进行复制。

字符串的最大长度为 MQ_Q_NAME_LENGTH

ToQName (MQCFST)
至队列名称 (参数标识: MQCACF_TO_Q_NAME)。

指定新队列定义的名称。

字符串的最大长度为 MQ_Q_NAME_LENGTH

队列名称必须唯一; 如果存在具有新队列的名称和类型的队列定义,那么必须将 Replace 指定为 MQRP_YES。 如果存在与新队列具有相同名称和不同类型的队列定义,那么该命令将失败。

必需参数 (所有命令)

QType (MQCFIN)
队列类型 (参数标识: MQIA_Q_TYPE)。

指定的值必须与要更改的队列的类型匹配。

值可以是以下任意值:
MQQT_ALIAS
别名队列定义。
MQQT_LOCAL
本地队列。
MQQT_REMOTE
远程队列的本地定义。
MQQT_MODEL
模型队列定义。

可选参数 ("更改" , "复制" 和 "创建队列")

BackoutRequeueName (MQCFST) -请参阅 MQSC BOQNAME
过多的回退重排队列名称 (参数标识: MQCA_BACKOUT_REQ_Q_NAME)。

如果消息回退次数超过 BackoutThreshold的值,那么指定要将其传输到的队列的名称。 该队列不必是本地队列。

此时不需要存在回退队列,但在超过 BackoutThreshold 值时必须存在回退队列。

字符串的最大长度为 MQ_Q_NAME_LENGTH

BackoutThreshold (MQCFIN)
回退阈值 (参数标识: MQIA_BACKOUT_THRESHOLD)。

消息在传输到 BackoutRequeueName指定的回退队列之前可以回退的次数。

如果稍后减小该值,那么已在队列中回退的消息将至少与新值保留在队列中的次数相同。 如果这些消息再次回退,那么将传输这些消息。

指定 0-999,999,999 范围内的值。

BaseObjectName (MQCFST)
别名解析为的对象的名称 (参数标识: MQCA_BASE_OBJECT_NAME)。

此参数是对本地队列管理器定义的队列或主题的名称。

字符串的最大长度为 MQ_OBJECT_NAME_LENGTH

BaseQName (MQCFST)
别名解析为的队列名称 (参数标识: MQCA_BASE_Q_NAME)。

此参数是定义到本地队列管理器的本地或远程队列的名称。

字符串的最大长度为 MQ_Q_NAME_LENGTH

[z/OS] CFStructure (MQCFST)
[z/OS]耦合设施结构名称 (参数标识: MQCA_CF_STRUC_NAME)。 此参数仅适用于 z/OS
指定在使用共享队列时要存储消息的耦合设施结构的名称。 名称:
  • 不能超过 12 个字符
  • 必须以大写字母 (A-Z) 开头
  • 只能包含字符 A-Z 和 0-9

字符串的最大长度为 MQ_CF_STRUC_NAME_LENGTH

队列管理器所连接的队列共享组的名称以您提供的名称为前缀。 队列共享组的名称始终为 4 个字符,必要时使用 @ 符号填充。 例如,如果使用名为 NY03 的队列共享组并提供名称 PRODUCT7,那么生成的耦合设施结构名称为 NY03PRODUCT7。 请注意,队列共享组 (在本例中为 NY03CSQ_ADMIN) 的管理结构不能用于存储消息。

对于本地队列和模型队列,以下规则适用。 如果在 Replace 参数中使用值为 MQRP_YES 的 "创建队列" 命令,那么规则适用。 如果使用 "更改队列" 命令,那么规则也适用。
  • QSGDisposition 参数中值为 MQQSGD_SHARED 的本地队列上, CFStructure 无法更改。

    如果需要更改 CFStructure QSGDisposition 值,那么必须删除并重新定义队列。 要保留队列上的任何消息,必须先卸载消息,然后才能删除队列。 在重新定义队列后重新装入消息,或者将消息移至另一个队列。

  • DefinitionType 参数中值为 MQQDT_SHARED_DYNAMIC 的模型队列上, CFStructure 不能为空。
  • 在具有除 QSGDisposition 参数中的 MQQSGD_SHARED 以外的值的本地队列上, CFStructure 的值无关紧要。 对于在 DefinitionType 参数中具有除 MQQDT_SHARED_DYNAMIC 以外的值的模型队列,值 CFStructure 也无关紧要。
对于本地队列和模型队列,当您在 Replace 参数中使用值为 MQRP_NO 的 "创建队列" 命令时,耦合设施结构:
  • QSGDisposition 参数中值为 MQQSGD_SHARED 的本地队列上,或者在 DefinitionType 参数中值为 MQQDT_SHARED_DYNAMIC 的模型队列上, CFStructure 不能为空。
  • 在具有除 QSGDisposition 参数中的 MQQSGD_SHARED 以外的值的本地队列上, CFStructure 的值无关紧要。 对于在 DefinitionType 参数中具有除 MQQDT_SHARED_DYNAMIC 以外的值的模型队列,值 CFStructure 也无关紧要。
注: 在可以使用队列之前,必须在耦合设施资源管理 (CFRM) 策略数据集中定义结构。
ClusterChannelName (MQCFST)

此参数仅在传输队列上受支持。

ClusterChannelName 是将此队列用作传输队列的集群发送方通道的通用名称。 该属性指定哪些集群发送方通道将消息从此集群传输队列发送到集群接收方通道。 (参数标识: MQCA_CLUS_CHL_NAME。)

您还可以手动将传输队列属性 ClusterChannelName 设置为集群发送方通道。 发往通过集群发送方通道连接的队列管理器的消息将存储在识别集群发送方通道的传输队列中, 而不会存储在缺省集群传输队列中。 如果将 ClusterChannelName 属性设置为空白,那么通道在重新启动时将切换至缺省集群传输队列。 缺省队列为 SYSTEM.CLUSTER.TRANSMIT.ChannelNameSYSTEM.CLUSTER.TRANSMIT.QUEUE,这取决于队列管理器 DefClusterXmitQueueType 属性的值。

通过在 ClusterChannelName 中指定星号 *,您可以将传输队列与一组集群发送方通道关联。 星号可以位于通道名称字符串的开头、结尾或中间任意位置。 ClusterChannelName 的长度限制为 20 个字符:MQ_CHANNEL_NAME_LENGTH

缺省队列管理器配置是让所有集群发送方通道从单个传输队列 SYSTEM.CLUSTER.TRANSMIT.QUEUE 发送消息。 您可以通过更改队列管理器属性 DefClusterXmitQueueType 来更改缺省配置。 该属性的缺省值为 SCTQ。 您可以将值更改为 CHANNEL。 如果将 DefClusterXmitQueueType 属性设置为 CHANNEL,那么每个集群发送方通道将缺省为使用特定集群传输队列 SYSTEM.CLUSTER.TRANSMIT.ChannelName

ClusterName (MQCFST)
集群名称 (参数标识: MQCA_CLUSTER_NAME)。

队列所属的集群的名称。

对此参数的更改不会影响已打开的队列实例。

只有 ClusterNameClusterNamelist 的其中一个结果值可以为非空白; 不能同时为这两个值指定值。

字符串的最大长度为 MQ_CLUSTER_NAME_LENGTH

ClusterNamelist (MQCFST)
集群名称列表 (参数标识: MQCA_CLUSTER_NAMELIST)。

名称列表的名称,用于指定队列所属的集群的列表。

对此参数的更改不会影响已打开的队列实例。

只有 ClusterNameClusterNamelist 的其中一个结果值可以为非空白; 不能同时为这两个值指定值。

CLWLQueuePriority (MQCFIN)
集群工作负载队列优先级 (参数标识: MQIA_CLWL_Q_PRIORITY)。

指定集群工作负载管理中队列的优先级; 请参阅 配置队列管理器集群该值必须在范围 0-9 中,其中 0 是最低优先级, 9 是最高优先级。

CLWLQueueRank (MQCFIN)
集群工作负载队列列组 (参数标识: MQIA_CLWL_Q_RANK)。

指定集群工作负载管理中队列的列组。 该值必须在范围 0-9 中,其中 0 是最低优先级, 9 是最高优先级。

CLWLUseQ (MQCFIN)
集群工作负载使用远程队列 (参数标识: MQIA_CLWL_USEQ)。
指定是否在集群工作负载分发中使用远程队列和本地队列。 值可以是以下任意值:
MQCLWL_USEQ_AS_Q_MGR
在队列管理器的定义上使用 CLWLUseQ 参数的值。
MQCLWL_USEQ_ANY
使用远程队列和本地队列。
MQCLWL_USEQ_LOCAL
请勿使用远程队列。
[z/OS] CommandScope (MQCFST)
[z/OS]命令作用域 (参数标识: MQCACF_COMMAND_SCOPE)。 此参数仅适用于 z/OS
指定当队列管理器是队列共享组的成员时如何运行该命令。 可指定下列值之一:
  • 空白,或者完全省略该参数。 该命令在输入该命令的队列管理器上运行。
  • 队列管理器名称。 该命令在您指定的队列管理器上运行,前提是它在队列共享组中处于活动状态。 如果指定的队列管理器名称不是输入该队列管理器的队列管理器,那么必须使用队列共享组环境。 必须启用命令服务器。
  • 星号 (*)。 该命令在本地队列管理器上执行,并且还会传递到队列共享组中的每个活动队列管理器。

最大长度为 MQ_QSG_NAME_LENGTH

Custom (MQCFST)
新功能部件的定制属性 (参数标识: MQCA_CUSTOM)。
[V8.0.0.4 2015 年 10 月]此属性包含作为属性名称和值对的属性值,至少以一个空格分隔。 属性名称/值对的格式为 NAME(VALUE)。 必须使用另一个单引号对单引号进行转义。
CAPEXPRY ( 整数 )
在系统中保留最大时间 (以十分之一秒为单位) ,直到使用对象句柄放入消息 (在解析路径上使用此对象打开) ,直到它符合到期处理条件为止。

有关消息到期处理的更多信息,请参阅 强制缩短到期时间

值可以是下列其中一个值:
integer
该值必须在范围 1 到 999,999,999 之间。
NOLIMIT
对于使用此对象放入的消息的到期时间没有限制。 这是缺省值。
指定无效的 CAPEXPRY 值不会导致命令失败。 而是使用缺省值。
DefaultPutResponse (MQCFIN)
缺省放置响应类型定义 (参数标识: MQIA_DEF_PUT_RESPONSE_TYPE)。
此参数指定当应用程序指定 MQPMO_RESPONSE_AS_Q_DEF时要用于将操作放入队列的响应类型。 值可以是以下任意值:
MQPRT_SYNC_RESPONSE
同步发出 put 操作,返回响应。
MQPRT_ASYNC_RESPONSE
异步发出 put 操作,返回 MQMD 字段的子集。
DefBind (MQCFIN)
绑定定义 (参数标识: MQIA_DEF_BIND)。
该参数指定在 MQOPEN 调用上指定 MQOO_BIND_AS_Q_DEF 时要使用的绑定。 值可以是以下任意值:
MQBND_BIND_ON_OPEN
绑定由 MQOPEN 调用固定。
MQBND_BIND_NOT_FIXED
绑定不固定。
MQBND_BIND_ON_GROUP
允许应用程序请求将一组消息全部分配给同一目标实例。

对此参数的更改不会影响已打开的队列实例。

DefinitionType (MQCFIN)
队列定义类型 (参数标识: MQIA_DEFINITION_TYPE)。
值可以是以下任意值:
MQQDT_PERMANENT_DYNAMIC
动态定义的永久队列。
MQQDT_SHARED_DYNAMIC
动态定义的共享队列。 此选项仅在 z/OS 上可用。
MQQDT_TEMPORARY_DYNAMIC
动态定义的临时队列。
DefInputOpenOption (MQCFIN)
缺省输入打开选项 (参数标识: MQIA_DEF_INPUT_OPEN_OPTION)。

为打开该队列以进行输入的应用程序指定缺省共享选项。

值可以是以下任意值:
MQOO_INPUT_EXCLUSIVE
打开队列以获取具有独占访问权的消息。
MQOO_INPUT_SHARED
打开队列以获取具有共享访问权的消息。
DefPersistence (MQCFIN)
缺省持久性 (参数标识: MQIA_DEF_PERSISTENCE)。

指定队列中消息持久性的缺省值。 消息持久性确定是否在 队列管理器重新启动后保留消息。

值可以是以下任意值:
MQPER_PERSISTENT
消息是持久消息。
MQPER_NOT_PERSISTENT
消息不是持久消息。
DefPriority (MQCFIN)
缺省优先级 (参数标识: MQIA_DEF_PRIORITY)。

指定放入队列的消息的缺省优先级。 该值必须在范围 0 到受支持的最大优先级值 (9) 之间。

DefReadAhead (MQCFIN)
缺省预读 (参数标识: MQIA_DEF_READ_AHEAD)。

指定传递到客户机的非持久消息的缺省预读行为。

值可以是以下任意值:
MQREADA_NO
除非将客户机应用程序配置为请求预读,否则不会预读非持久消息。
MQREADA_YES
在应用程序请求非持久消息之前,会将这些消息提前发送到客户机。 如果客户机异常结束,或者如果客户机未使用其发送的所有消息,那么可能会丢失非持久消息。
MQREADA_DISABLED
未对此队列启用非持久消息预读。 无论客户机应用程序是否请求预读,都不会将消息发送到客户机。
DistLists (MQCFIN)
分发列表支持 (参数标识: MQIA_DIST_LISTS)。

指定是否可以将分发列表消息放在队列上。

注: 此属性由发送消息通道代理程序 (MCA) 设置。 每次发送 MCA 与伙伴队列管理器上的接收 MCA 建立连接时,发送 MCA 都会从队列中除去消息。 此属性通常不是由管理员设置的,尽管在需要时可以设置此属性。

此参数在以下环境中受支持: AIX®HP-UXIBM iSolarisWindowsLinux

值可以是以下任意值:
MQDL_SUPPORTED
支持分发列表。
MQDL_NOT_SUPPORTED
不支持分发列表。
Force (MQCFIN)
强制更改 (参数标识: MQIACF_FORCE)。
指定当条件使完成该命令会影响打开的队列时,是否必须强制完成该命令。 条件取决于要更改的队列的类型:
QALIAS
BaseQName 与队列名称一起指定,并且应用程序打开了别名队列。
QLOCAL
以下任一条件指示本地队列将受影响:
  • Shareability 指定为 MQQA_NOT_SHAREABLE ,并且有多个应用程序打开了本地队列以进行输入。
  • Usage 值已更改,一个或多个应用程序打开了本地队列,或者队列上有一条或多条消息。 (当队列上有消息时,通常不得更改 Usage 值。 将消息放入传输队列时,这些消息的格式会更改。)
QREMOTE
以下任一条件指示远程队列将受影响:
  • 如果使用传输队列名称或空白指定了 XmitQName ,并且应用程序打开了将受此更改影响的远程队列。
  • 如果使用队列或队列管理器名称指定了下列任何参数,并且一个或多个应用程序将通过此定义解析为队列管理器别名的队列打开。 参数如下:
    1. RemoteQName
    2. RemoteQMgrName
    3. XmitQName
QMODEL
此参数对于模型队列无效。
注: 如果此定义仅用作应答队列定义,那么不需要值 MQFC_YES
值可以是以下任意值:
MQFC_YES
强制更改。
MQFC_NO
请勿强制更改。
HardenGetBackout(MQCFIN)
是否硬化回退计数 (参数标识: MQIA_HARDEN_GET_BACKOUT)。
指定是否固化回退消息的次数。 当已硬化计数时,在 MQGET 操作返回消息之前,会将消息描述符的 BackoutCount 字段的值写入日志。 将该值写入日志可确保该值在队列管理器重新启动时准确无误。
注: IBM MQ for IBM i 始终会加强计数,而不考虑此属性的设置。

硬化回退计数后,此队列上持久消息的 MQGET 操作的性能会受到影响。

值可以是以下任意值:
MQQA_BACKOUT_HARDENED
将对此队列上的消息的消息回退计数进行硬化,以确保计数准确。
MQQA_BACKOUT_NOT_HARDENED
此队列上消息的消息回退计数未固化,并且在队列管理器重新启动时可能不准确。
IndexType (MQCFIN)
索引类型 (参数标识: MQIA_INDEX_TYPE)。 此参数仅适用于 z/OS
指定队列管理器维护的索引类型,以加速队列上的 MQGET 操作。 对于共享队列,索引类型确定可以使用哪种类型的 MQGET 调用。 值可以是以下任意值:
MQIT_NONE
无索引。
MQIT_MSG_ID
使用消息标识对队列建立索引。
MQIT_CORREL_ID
使用相关标识对队列建立索引。
MQIT_MSG_TOKEN
重要信息: 此索引类型仅应用于与 IBM MQ Workflow for z/OS 产品配合使用的队列。
使用消息令牌对队列建立索引。
MQIT_GROUP_ID
使用组标识对队列建立索引。

仅当维护了相应的索引类型时,才能使用选择条件来检索消息,如下表所示:

检索选择条件 IndexType 必需
  共享队列 其他队列
无 (顺序检索) 任意 任意
消息标识 MQIT_MSG_ID or MQIT_NONE 任意
相关标识 MQIT_CORREL_ID 任意
消息和相关标识 MQIT_MSG_IDMQIT_CORREL_ID 任意
组标识 MQIT_GROUP_ID 任意
分组 MQIT_GROUP_ID MQIT_GROUP_ID
消息令牌 不允许 MQIT_MSG_TOKEN
InhibitGet (MQCFIN)
允许或禁止获取操作 (参数标识: MQIA_INHIBIT_GET)。
值可以是:
MQQA_GET_ALLOWED
允许执行获取操作。
MQQA_GET_INHIBITED
禁止获取操作。
InhibitPut (MQCFIN)
允许或禁止放置操作 (参数标识: MQIA_INHIBIT_PUT)。

指定是否可在队列中放入消息。

值可以是以下任意值:
MQQA_PUT_ALLOWED
允许执行放置操作。
MQQA_PUT_INHIBITED
禁止执行放置操作。
InitiationQName (MQCFST)
启动队列名称 (参数标识: MQCA_INITIATION_Q_NAME)。

与此队列相关的触发器消息的本地队列。 启动队列必须位于同一队列管理器上。

字符串的最大长度为 MQ_Q_NAME_LENGTH

MaxMsgLength (MQCFIN)
最大消息长度 (参数标识: MQIA_MAX_MSG_LENGTH)。

队列中消息的最大长度。 应用程序可以使用该属性的值来确定从队列检索消息时需要的缓冲区大小。 如果更改此值,那么可能会导致应用程序操作不正确。

请勿设置大于队列管理器的 MaxMsgLength 属性的值。

此参数的下限为 0。 上限取决于环境:
  • AIX HP Integrity NonStop ServerHP-UXIBM iSolarisLinuxWindowsz/OS上,最大消息长度为 100 MB (104,857,600 字节)。
  • 在其他 UNIX 系统上,最大消息长度为 4 MB (4,194,304 字节)。
MaxQDepth (MQCFIN)
最大队列深度 (参数标识: MQIA_MAX_Q_DEPTH)。
队列上允许的最大消息数。
注: 其他因素可能导致队列被视为已满。 例如,如果没有可用于消息的存储器,那么显示为已满。
指定大于或等于 0 且小于或等于以下值的值:
  • 999,999,999 (如果队列在 AIXHP-UXIBM iSolarisLinuxWindowsz/OS 上)
  • 640,000 (如果队列在任何其他 IBM MQ 平台上)。
MsgDeliverySequence (MQCFIN)
按优先级顺序或顺序传递消息 (参数标识: MQIA_MSG_DELIVERY_SEQUENCE)。
值可以是以下任意值:
MQMDS_PRIORITY
将按优先级顺序返回消息。
MQMDS_FIFO
按 FIFO 顺序返回消息 (先进先出)。
NonPersistentMessageClass (MQCFIN)
要分配给放入队列的非持久消息的可靠性级别 (参数标识: MQIA_NPM_CLASS)。
值可以是:
MQNPM_CLASS_NORMAL
只要队列管理器会话的生存期,非持久消息就会持久存在。 在队列管理器重新启动时,将废弃这些属性。 该值为缺省值。
MQNPM_CLASS_HIGH
队列管理器尝试在队列的生存期内保留非持久消息。 发生故障时,可能仍会丢失非持久消息。

此参数仅在本地队列和模型队列上有效。 它在 z/OS上无效。

ProcessName (MQCFST)
队列的进程定义的名称 (参数标识: MQCA_PROCESS_NAME)。
指定 IBM MQ 进程的局部名,该进程标识发生触发器事件时要启动的应用程序。
  • 如果队列是传输队列,那么进程定义包含要启动的通道的名称。 对于 AIXHP-UXLinuxIBM iSolarisWindowsz/OS上的传输队列,此参数是可选的。 如果未指定此参数,那么将从为 TriggerData 参数指定的值中获取通道名称。
  • 在其他环境中,进程名称必须为非空白才能发生触发器事件,尽管可以在创建队列后进行设置。

字符串的最大长度为 MQ_PROCESS_NAME_LENGTH

PropertyControl (MQCFIN)
属性控制属性 (参数标识: MQIA_PROPERTY_CONTROL)。
指定使用带有 MQGMO_PROPERTIES_AS_Q_DEF 选项的 MQGET 调用从队列中检索消息时如何处理消息属性。 值可以是以下任意值:
MQPROP_COMPATIBILITY
如果消息包含前缀为 mcd.jms.usr.mqext.的属性,那么所有消息属性都将通过 MQRFH2 头传递到应用程序。 否则,将废弃消息的所有属性 (消息描述符 (或扩展) 中包含的属性除外) ,并且应用程序无法再访问这些属性。
该值为缺省值。 它允许期望 JMS相关属性位于消息数据的 MQRFH2 头中的应用程序继续在未修改的情况下工作。
MQPROP_NONE
在将消息发送到远程队列管理器之前,将从消息中除去该消息的所有属性。 不会除去消息描述符或扩展中的属性。
MQPROP_ALL
将消息发送到远程队列管理器时,该消息的所有属性都包含在该消息中。 这些属性 (消息描述符 (或扩展) 中的属性除外) 放置在消息数据中的一个或多个 MQRFH2 头中。
MQPROP_FORCE_MQRFH2
无论应用程序是否指定消息句柄,都将始终在 MQRFH2 头中的消息数据中返回属性。
将忽略 MQGET 调用上 MQGMO 结构的 MsgHandle 字段中提供的有效消息句柄。 无法使用消息句柄来访问消息的属性。
MQPROP_V6COMPAT
发送应用程序 MQRFH2 头时,将接收到该头。 必须使用 MQINQMP来检索使用 MQSETMP 的任何属性集。 它们不会添加到应用程序创建的 MQRFH2 。 无法使用 MQINQMP检索发送应用程序在 MQRFH2 头中设置的属性。

此参数适用于本地队列,别名队列和模型队列。

QDepthHighEvent (MQCFIN)
控制是否生成 "队列深度高" 事件 (参数标识: MQIA_Q_DEPTH_HIGH_EVENT)。

"队列深度高" 事件指示应用程序将消息放入队列中。 此事件导致队列上的消息数大于或等于队列深度阈值上限。 请参阅 QDepthHighLimit 参数。

注: 此属性的值可以隐式更改; 请参阅 可编程命令格式的定义
值可以是:
MQEVR_DISABLED
已禁用事件报告。
MQEVR_ENABLED
已启用事件报告。
QDepthHighLimit (MQCFIN)
队列深度的上限 (参数标识: MQIA_Q_DEPTH_HIGH_LIMIT)。

用于比较队列深度以生成 "队列深度上限" 事件的阈值。

此事件指示应用程序将消息放入队列。 此事件导致队列上的消息数大于或等于队列深度阈值上限。 请参阅 QDepthHighEvent 参数。

该值以最大队列深度 MaxQDepth的百分比表示。 它必须大于或等于 0 且小于或等于 100。

QDepthLowEvent (MQCFIN)
控制是否生成队列深度下限事件 (参数标识: MQIA_Q_DEPTH_LOW_EVENT)。

"队列深度下限" 事件指示应用程序从队列中检索消息。 此事件导致队列上的消息数小于或等于队列深度下限阈值。 请参阅 QDepthLowLimit 参数。

注: 此属性的值可以隐式更改。 请参阅 可编程命令格式的定义
值可以是:
MQEVR_DISABLED
已禁用事件报告。
MQEVR_ENABLED
已启用事件报告。
QDepthLowLimit (MQCFIN)
队列深度的下限 (参数标识: MQIA_Q_DEPTH_LOW_LIMIT)。

将队列深度与之进行比较以生成 "队列深度下限" 事件的阈值。

此事件指示应用程序从队列中检索消息。 此事件导致队列上的消息数小于或等于队列深度下限阈值。 请参阅 QDepthLowEvent 参数。

以最大队列深度 (MaxQDepth 属性) 的百分比形式指定值,范围为 0 到 100。

QDepthMaxEvent (MQCFIN)
控制是否生成 "队列已满" 事件 (参数标识: MQIA_Q_DEPTH_MAX_EVENT)。

"队列已满" 事件指示由于队列已满而拒绝了对队列的 MQPUT 调用。 即,队列深度达到其最大值。

注: 此属性的值可以隐式更改; 请参阅 可编程命令格式的定义
值可以是:
MQEVR_DISABLED
已禁用事件报告。
MQEVR_ENABLED
已启用事件报告。
QDesc (MQCFST)
队列描述 (参数标识: MQCA_Q_DESC)。

简要描述对象的文本。

字符串的最大长度为 MQ_Q_DESC_LENGTH。

将由编码字符集标识 (CCSID) 标识的字符集中的字符用于执行命令的消息队列管理器。 此选项确保文本在发送到另一个队列管理器时正确转换。

QServiceInterval (MQCFIN)
队列服务时间间隔的目标 (参数标识: MQIA_Q_SERVICE_INTERVAL)。

用于比较以生成 "队列服务时间间隔高" 和 "队列服务时间间隔正常" 事件的服务时间间隔。 请参阅 QServiceIntervalEvent 参数。

指定 0 到 999,999,999 毫秒范围内的值。

QServiceIntervalEvent (MQCFIN)
控制是生成 "服务时间间隔高" 还是 "服务时间间隔正常" 事件 (参数标识: MQIA_Q_SERVICE_INTERVAL_EVENT)。

当检查指示至少在 QServiceInterval 属性指示的时间内未从队列检索消息或未将消息放入队列时,将生成 "队列服务时间间隔高" 事件。

当检查指示在 QServiceInterval 属性指示的时间内从队列中检索消息时,将生成 "队列服务时间间隔正常" 事件。

注: 此属性的值可以隐式更改; 请参阅 可编程命令格式的定义
值可以是以下任意值:
MQQSIE_HIGH
队列服务时间间隔高事件已启用。
  • 已启用 "队列服务时间间隔高" 事件,并且
  • 队列服务时间间隔正常事件已禁用。
MQQSIE_OK
队列服务时间间隔正常事件已启用。
  • 已禁用 "队列服务时间间隔高" 事件,并且
  • 队列服务时间间隔正常事件已启用。
MQQSIE_NONE
未启用队列服务时间间隔事件。
  • 已禁用 "队列服务时间间隔高" 事件,并且
  • 还会禁用 "队列服务时间间隔正常" 事件。
[z/OS] QSGDisposition (MQCFIN)
[z/OS]组中对象的处置 (参数标识: MQIA_QSG_DISP )。 此参数仅适用于 z/OS
指定要对其应用命令的对象的处置 (即,定义对象的位置及其行为方式)。 值可以是以下任意值:
QSGDisposition 更改 复制,创建
MQQSGD_COPY 对象定义位于执行该命令的队列管理器的页集上。 对象是使用具有参数 MQQSGD_COPY的命令定义的。 驻留在共享存储库中的任何对象或使用具有参数 MQQSGD_Q_MGR的命令定义的任何对象都不受此命令影响。 该对象是在队列管理器的页集上定义的,该队列管理器使用与 ToQName 对象 (用于复制) 或 QName 对象 (用于创建) 同名的 MQQSGD_GROUP 对象来执行命令。 对于本地队列,消息存储在每个队列管理器的页集上,并且仅可通过此队列管理器使用。
MQQSGD_GROUP 对象定义位于共享存储库中。 对象是使用具有参数 MQQSGD_GROUP的命令定义的。 此命令不会影响驻留在执行该命令的队列管理器页集上的任何对象 (对象的本地副本除外)。
如果该命令成功,那么将生成以下 MQSC 命令并将其发送到队列共享组中的所有活动队列管理器,以尝试在页集 0 上刷新本地副本:
DEFINE QUEUE(q-name)
REPLACE QSGDISP(COPY)
无论生成的带有 QSGDISP(COPY) 的命令是否失败,组对象的更改都将生效。
对象定义位于共享存储库中。 仅在共享队列管理器环境中允许此值。
如果定义成功,那么将生成以下 MQSC 命令并将其发送到所有活动队列管理器,以尝试在页集 0 上创建或刷新本地副本:
DEFINE QUEUE(q-name)
REPLACE QSGDISP(COPY)
无论使用 QSGDISP(COPY) 生成的命令是否失败, "复制" 或 "创建" 组对象都将生效。
MQQSGD_PRIVATE 该对象驻留在执行该命令的队列管理器的页集上,并且是使用 MQQSGD_Q_MGRMQQSGD_COPY定义的。 驻留在共享存储库中的任何对象都不受影响。 不允许。
MQQSGD_Q_MGR 对象定义位于执行该命令的队列管理器的页集上。 对象是使用具有参数 MQQSGD_Q_MGR的命令定义的。 此命令不会影响共享存储库中的任何对象或此类对象的任何本地副本。 该值为缺省值。 在执行命令的队列管理器的页集上定义对象。 该值为缺省值。 对于本地队列,消息存储在每个队列管理器的页集上,并且仅可通过此队列管理器使用。
MQQSGD_SHARED 此值仅适用于本地队列。 对象定义位于共享存储库中。 对象是由使用参数 MQQSGD_SHARED的命令定义的。 驻留在执行该命令的队列管理器页集上的任何对象或使用参数 MQQSGD_GROUP的命令定义的任何对象都不受此命令的影响。 此选项仅适用于本地队列。 对象是在共享存储库中定义的。 消息存储在耦合设施中,可供队列共享组中的任何队列管理器使用。 只有在下列情况下,才能指定 MQQSGD_SHARED :
  • CFStructure 为非空白
  • IndexType 不为 MQIT_MSG_TOKEN
  • 队列不是下列其中一项:
    • SYSTEM.CHANNEL.INITQ
    • SYSTEM.COMMAND.INPUT
QueueAccounting (MQCFIN)
控制记帐数据的收集 (参数标识: MQIA_ACCOUNTING_Q)。
值可以是:
MQMON_Q_MGR
将根据队列管理器上 QueueAccounting 参数的设置来执行队列的记帐数据收集。
MQMON_OFF
已禁用队列的记帐数据收集。
MQMON_ON
如果队列管理器的 QueueAccounting 参数值不是 MQMON_NONE,那么将为队列启用记帐数据收集。
QueueMonitoring (MQCFIN)
联机监视数据收集 (参数标识: MQIA_MONITORING_Q)。
指定是否要收集联机监视数据,如果要收集,那么指定收集数据的速率。 值可以是以下任意值:
MQMON_OFF
对此队列关闭联机监视数据收集。
MQMON_Q_MGR
队列管理器的 QueueMonitoring 参数的值由队列继承。
MQMON_LOW
如果队列管理器 QueueMonitoring 参数的值不是 MQMON_NONE,那么将开启联机监视数据收集。 此队列的数据收集速率较低。
MQMON_MEDIUM
如果队列管理器 QueueMonitoring 参数的值不是 MQMON_NONE,那么将开启联机监视数据收集。 此队列的数据收集速率适中。
MQMON_HIGH
如果队列管理器 QueueMonitoring 参数的值不是 MQMON_NONE,那么将开启联机监视数据收集。 此队列的数据收集速率较高。
QueueStatistics (MQCFIN)
统计信息数据收集 (参数标识: MQIA_STATISTICS_Q)。
指定是否启用统计数据收集。 值可以是以下任意值:
MQMON_Q_MGR
队列管理器的 QueueStatistics 参数的值由队列继承。
MQMON_OFF
统计信息数据收集已禁用
MQMON_ON
如果队列管理器的 QueueStatistics 参数值不是 MQMON_NONE,那么将启用统计信息数据收集

此参数仅在 IBM iUNIX 系统Windows上有效。

RemoteQMgrName (MQCFST)
远程队列管理器的名称 (参数标识: MQCA_REMOTE_Q_MGR_NAME)。

如果应用程序打开远程队列的本地定义,那么 RemoteQMgrName 不得为空或应用程序所连接到的队列管理器的名称。 如果 XmitQName 为空,那么必须有一个名为 RemoteQMgrName的本地队列。 该队列用作传输队列。

如果此定义用于队列管理器别名,那么 RemoteQMgrName 是队列管理器的名称。 队列管理器名称可以是已连接的队列管理器的名称。 如果 XmitQName 为空,那么当打开队列时,必须有一个名为 RemoteQMgrName的本地队列。 该队列用作传输队列。

如果此定义用于应答队列别名,那么 RemoteQMgrName 是要作为应答队列管理器的队列管理器的名称。

字符串的最大长度为 MQ_Q_MGR_NAME_LENGTH

RemoteQName (MQCFST)
远程队列管理器上本地已知的远程队列的名称 (参数标识: MQCA_REMOTE_Q_NAME)。

如果此定义用于远程队列的本地定义,那么当发生打开时, RemoteQName 不得为空。

如果此定义用于队列管理器别名定义,那么当发生打开时, RemoteQName 必须为空。

如果此定义用于应答队列别名,那么此名称是要作为应答队列的队列的名称。

字符串的最大长度为 MQ_Q_NAME_LENGTH

Replace (MQCFIN)
替换属性 (参数标识: MQIACF_REPLACE)。 此参数在 "更改队列" 命令上无效。

如果对象存在,那么效果类似于发出 "更改队列" 命令。 它类似于 "更改队列" 命令,在 Force 参数上没有 MQFC_YES 选项,并且指定了所有其他属性。 请特别注意,将保留现有队列中的任何消息。

Force 参数上不带 MQFC_YES 的 "更改队列" 命令与在 Replace 参数上带 MQRP_YES 的 "创建队列" 命令不同。 不同的是, "更改队列" 命令不会更改未指定的属性。 使用 MQRP_YES 创建队列将设置所有属性。 如果使用 MQRP_YES,那么将从缺省定义中获取未指定的属性,并且将忽略要替换的对象的属性 (如果存在)。)

如果以下两个参数均为 true ,那么该命令将失败:
  • 如果您使用的是 "更改队列" 命令,那么该命令将设置需要在 Force 参数上使用 MQFC_YES 的属性
  • 对象已打开

在此情况下,在 Force 参数上使用 MQFC_YES 的 "更改队列" 命令成功。

如果在 UNIX 系统上的 Scope 参数上指定了 MQSCO_CELL ,并且单元目录中已存在同名的队列,那么该命令将失败。 即使指定了 MQRP_YES ,该命令也会失败。

值可以是以下任意值:
MQRP_YES
替换现有定义。
MQRP_NO
请勿替换现有定义。
RetentionInterval (MQCFIN)
保留时间间隔 (参数标识: MQIA_RETENTION_INTERVAL)。

根据创建队列的日期和时间,可能需要队列的小时数。

该信息对内务处理应用程序或操作员可用,可以用来确定什么时侯不再需要队列了。 如果队列的保留时间间隔未到期,那么队列管理器不会删除队列,也不会阻止删除队列。 用户负责执行任何必需的操作。

指定 0-999,999,999 范围内的值。

Scope (MQCFIN)
队列定义的作用域 (参数标识: MQIA_SCOPE)。

指定队列定义的作用域是否超出拥有队列的队列管理器。 如果队列名称包含在单元目录中,那么将执行此操作,以便该单元中的所有队列管理器都知道此操作。

如果将此属性从 MQSCO_CELL 更改为 MQSCO_Q_MGR,那么将从单元目录中删除队列的条目。

无法将模型和动态队列更改为具有单元作用域。

如果从 MQSCO_Q_MGR 更改为 MQSCO_CELL,那么将在单元目录中创建队列的条目。 如果单元目录中已有同名的队列,那么该命令将失败。 如果未配置支持单元目录的名称服务,那么此命令也会失败。

值可以是:
MQSCO_Q_MGR
队列管理器作用域。
MQSCO_CELL
单元格作用域。

此值在 IBM i上不受支持。

此参数在 z/OS上不可用。

Shareability (MQCFIN)
队列可以共享,也可以不共享 (参数标识: MQIA_SHAREABILITY)。

指定应用程序的多个实例是否可以打开该队列以进行输入。

值可以是以下任意值:
MQQA_SHAREABLE
队列可共享。
MQQA_NOT_SHAREABLE
队列不可共享。
[z/OS] StorageClass (MQCFST)
[z/OS]存储类 (参数标识: MQCA_STORAGE_CLASS)。 此参数仅适用于 z/OS

指定存储类的名称。

字符串的最大长度为 MQ_STORAGE_CLASS_LENGTH

TargetType (MQCFIN)
目标类型 (参数标识: MQIA_BASE_TYPE)。

指定别名解析为对象的类型。

值可以是以下任意值:
MQOT_Q
对象是队列。
MQOT_TOPIC
对象是一个主题。
TriggerControl (MQCFIN)
触发器控制 (参数标识: MQIA_TRIGGER_CONTROL)。

指定触发器消息是否要写入初始队列。

值可以是:
MQTC_OFF
不需要触发器消息。
MQTC_ON
需要触发消息。
TriggerData (MQCFST)
触发器数据 (参数标识: MQCA_TRIGGER_DATA)。

指定队列管理器包含在触发器消息中的用户数据。 此数据可供处理启动队列的监视应用程序以及由监视器启动的应用程序使用。

字符串的最大长度为 MQ_TRIGGER_DATA_LENGTH

TriggerDepth (MQCFIN)
触发器深度 (参数标识: MQIA_TRIGGER_DEPTH)。

指定 (当 TriggerTypeMQTT_DEPTH时) 向启动队列启动触发器消息的消息数。 该值必须在范围 1 到 999,999,999 之间。

TriggerMsgPriority (MQCFIN)
触发器的阈值消息优先级 (参数标识: MQIA_TRIGGER_MSG_PRIORITY)。

指定消息必须具有的最低优先级,然后才能导致触发事件或对其进行计数。 该值必须在受支持的优先级值范围内 (0 到 9)。

TriggerType (MQCFIN)
触发器类型 (参数标识: MQIA_TRIGGER_TYPE)。

指定启动触发器事件的条件。 条件为真时,触发器消息发送到初始队列。

值可以是以下任意值:
MQTT_NONE
无触发器消息。
MQTT_EVERY
针对每条消息触发消息。
MQTT_FIRST
队列深度从 0 到 1 时触发消息。
MQTT_DEPTH
超过深度阈值时触发消息。
Usage (MQCFIN)
用法 (参数标识: MQIA_USAGE)。

指定队列是用于正常使用还是用于将消息传输到远程消息队列管理器。

值可以是以下任意值:
MQUS_NORMAL
正常使用。
MQUS_TRANSMISSION
传输队列。
XmitQName (MQCFST)
传输队列名称 (参数标识: MQCA_XMIT_Q_NAME)。

指定要用于以远程队列或队列管理器别名定义为目标的消息的传输队列的局部名。

如果 XmitQName 为空,那么将使用与 RemoteQMgrName 同名的队列作为传输队列。

如果定义用作队列管理器别名,并且 RemoteQMgrName 是已连接的队列管理器的名称,那么将忽略此属性。

如果此定义用作应答队列别名定义,那么也忽略它。

字符串的最大长度为 MQ_Q_NAME_LENGTH

错误代码 (更改,复制和创建队列)

除了 适用于所有命令的错误代码中显示的值外,此命令可能会在响应格式头中返回以下错误。

Reason (MQLONG)
值可以是以下任意值:
MQRCCF_CELL_DIR_NOT_AVAILABLE
单元目录不可用。
MQRCCF_CLUSTER_NAME_CONFLICT
集群名称冲突。
MQRCCF_CLUSTER_Q_USAGE_ERROR
集群使用冲突。
MQRCCF_DYNAMIC_Q_SCOPE_ERROR
动态队列范围错误。
MQRCCF_FORCE_VALUE_ERROR
强制值无效。
MQRCCF_Q_ALREADY_IN_CELL
队列存在于单元中。
MQRCCF_Q_TYPE_ERROR
队列类型无效。