MQCMD_INQUIRE_TOPIC (查询主题) 响应
对 "查询主题" (MQCMD_INQUIRE_TOPIC) PCF 命令的响应由后跟 TopicName 结构 (仅在 z/OS® 上为 QSG
Disposition 结构) 的响应头以及请求的属性参数结构组合 (如果适用) 组成。
- 始终返回:
TopicName,TopicType,
QSGDisposition- 如果请求,返回:
AlterationDate,AlterationTime,CapExpiry,ClusterName,ClusterObjectState,ClusterPubRoute,CommInfo,Custom,DefPersistence,DefPriority,DefPutResponse,DurableModelQName,DurableSubscriptions,InhibitPublications,InhibitSubscriptions,Multicast,NonDurableModelQName,NonPersistentMsgDelivery,,
OTELPropagationControl,
OTELTracePersistentMsgDelivery,ProxySubscriptions,PublicationScope,QMgrName,SubscriptionScope,TopicDesc,TopicString,UseDLQ,WildcardOperation
响应数据
- 更改日期 (参数标识 :MQCA_ALTERATION_DATE)。
上次变更信息的日期,格式为
yyyy-mm-dd。 - 更改时间 (参数标识 :MQCA_ALTERATION_TIME)。
上次变更信息的时间,格式为
hh.mm.ss。 - 受限消息到期处理 (参数标识
MQIA_CAP_EXPIRY)。指定使用对象放入的消息的生存期限制,以秒的 10ths 表示。
- 此主题所属的集群的名称。 (参数标识: MQCA_CLUSTER_NAME)。
字符串的最大长度为 MQ_CLUSTER_NAME_LENGTH。 将此参数设置为此队列管理器所属的集群将使得集群中的所有队列管理器都知晓此主题。 对于此主题或其下方的主题字符串的任何发布,放入集群中任何队列管理器之后,都会将其传播到集群中任何其他队列管理器上的预订。 有关更多详细信息,请参阅 分布式发布/预订网络。
值可以是以下任意值:- Blank
- 如果主题树中此主题上方没有任何主题对象将将此参数设置为集群名称,那么此主题不属于集群。 此主题的发布和预订不会传播至发布/预订集群连接的队列管理器。 如果主题树中更高位置的某个主题节点设置了集群名称,那么也会在整个集群中传播此主题的发布和预订。
- 字符串
- 该主题属于此集群。 建议不要将此设置为与主题树中此主题对象上方的主题对象不同的集群。 集群中的其他队列管理器将支持此对象的定义,除非这些队列管理器上存在相同名称的本地定义。
- 集群主题定义的当前状态 (参数标识 :MQIA_CLUSTER_OBJECT_STATE)。值可以是以下任意值:
- MQCLST_ACTIVE
- 集群主题已正确配置,并由此队列管理器遵循。
- MQCLST_PENDING
- 仅供托管队列管理器查看,创建此主题但尚未将完整存储库传播至集群时报告此状态。 原因可能是主机队列管理器未连接至完整存储库,或者完整存储库已将该主题视为无效主题。
- MQCLST_INVALID
- 此集群主题定义与集群中先前的定义相冲突,因此当前未处于活动状态。
- MQCLST_ERROR
- 该主题对象发生了错误。
- 集群中队列管理器之间发布的路由行为 (参数标识 :MQIA_CLUSTER_PUB_ROUTE)。值可以是以下任意值:
- MQCLROUTE_DIRECT
- 在您配置有关队列管理器的直接路由集群主题时,集群中的所有队列管理器都会知晓集群中的所有其他队列管理器。 在执行发布和预订操作时,每个队列管理器都可以直接连接到集群中的任何其他队列管理器。
- MQCLROUTE_TOPIC_HOST
- 在您使用主题主机路由时,集群中的所有队列管理器都会知晓托管了路由主题定义的集群队列管理器(即您在其上定义了主题对象的队列管理器)。 在执行发布和预订操作时,集群中的队列管理器只会连接到这些主题主机队列管理器,而不会彼此直接连接。 主题主机队列管理器负责将发布从执行发布的队列管理器路由至具有匹配预订的队列管理器。
- 通信信息对象的名称 (参数标识 :MQCA_COMM_INFO_NAME)。
显示要用于此主题节点的通信信息对象的名称的解析值。
字符串的最大长度为 MQ_COMM_INFO_NAME_LENGTH。
- 新功能部件的定制属性 (参数标识 :MQCA_CUSTOM)。
该属性包含名称-值对,其形式为 NAME(VALUE)。 值是一个由零个或多个属性-值对组成的列表,采用 MQSC 风格的语法,至少用一个空格隔开。 以 IBM, AMQ, CSQ 或 MQ 开头的属性名称仅供 IBM® 使用。 附加保留属性为 CAPEXPRY、 SQGETTMR 和 PAGEVAL。
引入使用此属性的功能时,将更新此描述。![[不推荐]](ngdeprecated.gif)
![[MQ 9.4.0 2024 年 6 月]](ng940.gif)
注: 从 IBM MQ 9.4.0开始,主题 CapExpiry 属性将取代在 字段 MQCA_CUSTOM 中使用 (整数) CAPEXPRY 选项的功能。 如果属性 MQCA_CUSTOM 中已定义了整数选项 CAPEXPRY ,则无法设置主题 CapExpiry 属性。 您应修改现有主题以设置主题 CapExpiry 属性,并从属性 MQCA_CUSTOM 中取消设置 CAPEXPRY (整数)选项。 有关允许值的更多信息,请参阅 CapExpiry。 - 缺省持久性 (参数标识 :MQIA_TOPIC_DEF_PERSISTENCE)。值可以是:
- MQPER_PERSISTENCE_AS_PARENT
- 缺省持久性基于主题树中最接近的父管理主题对象的设置。
- MQPER_PERSISTENT
- 消息是持久消息。
- MQPER_NOT_PERSISTENT
- 消息不是持久消息。
- 缺省优先级 (参数标识 :MQIA_DEF_PRIORITY)。
- 缺省 put 响应 (参数标识 :MQIA_DEF_PUT_RESPONSE_TYPE)。值可以是:
- MQPRT_ASYNC_RESPONSE
- 异步发出 put 操作,返回 MQMD 字段的子集。
- MQPRT_RESPONSE_AS_PARENT
- 缺省 put 响应基于主题树中最接近的父管理主题对象的设置。
- MQPRT_SYNC_RESPONSE
- 同步发出 put 操作,返回响应。
- 要用于持久受管预订的模型队列的名称 (参数标识 :MQCA_MODEL_DURABLE_Q)。
字符串的最大长度为 MQ_Q_NAME_LENGTH。
- 是否允许应用程序进行持久预订 (参数标识 :MQIA_DURABLE_SUB)。值可以是:
- MQSUB_DURABLE_AS_PARENT
- 是否允许持久预订取决于主题树中最接近的父管理主题对象的设置。
- MQSUB_DURABLE_ALLOWED
- 允许持久预订。
- MQSUB_DURABLE_INHIBITED
- 不允许持久预订。
- 此主题是否允许发布 (参数标识:MQIA_抑制 _pub)。值可以是:
- MQTA_PUB_AS_PARENT
- 是否可以将消息发布到此主题基于主题树中最接近的父管理主题对象的设置。
- MQTA_PUB_INHIBITED
- 本主题禁止发布。
- MQTA_PUB_ALLOWED
- 此主题允许发布。
- 此主题是否允许预订 (参数标识:MQIA_禁止子)。值可以是:
- MQTA_SUB_AS_PARENT
- 应用程序是否可以预订此主题取决于主题树中最接近的父管理主题对象的设置。
- MQTA_SUB_INHIBITED
- 此主题禁止预订。
- MQTA_SUB_ALLOWED
- 此主题允许预订。
- 是否将多点广播用于此主题 (参数标识:MQIA_多点广播)。
返回值:
- MQMC_ENABLED
- 可以使用多点广播。
- MQMC_DISABLED
- 不使用多点广播。
- MQMC_ONLY
- 只能在此主题上使用多点广播发布/预订。
- 要用于非持久受管预订的模型队列的名称 (参数标识 :MQCA_MODEL_NON_DURABLE_Q)。
字符串的最大长度为 MQ_Q_NAME_LENGTH。
- 发布到此主题的非持久消息的传递机制 (参数标识 :MQIA_NPM_DELIVERY)。值可以是:
- MQDLV_AS_PARENT
- 所使用的交付机制基于在与此主题相关的主题树中找到的第一个父管理节点的设置。
- MQDLV_ALL
- 必须将非持久消息传递到所有订户,而不考虑 MQPUT 调用报告成功的持久性。 如果发生对任何订户的传递失败,那么没有其他订户接收到消息,并且 MQPUT 失败。
- MQDLV_ALL_DUR
- 必须将非持久消息传递到所有持久订户。 将非持久消息传递至任何一个非持久订户的失败不会将错误返回至 MQPUT 调用。 如果发生传递到持久订户的故障,那么不会有其他订户接收到消息,并且 MQPUT 将失败。
- MQDLV_ALL_AVAIL
- 非持久消息将传递到可以接受该消息的所有订户。 将消息传递至任何一个订户的失败不会阻止其他订户接收到该消息。
- 队列管理器是否会自动将应用程序环境中的跟踪上下文传播到MQPUT上的消息。 参数标识符:MQIA_OTEL_PROPAGATION_CONTROL。
有关自动传播的更多信息,请参阅跟踪传播。
可以是下列其中一个值:- MQOTEL_PCTL_AS_PARENT
- 队列管理器是否自动从应用程序环境传播跟踪上下文,取决于在与该主题相关的主题树中找到的第一个父管理节点的设置。 这是默认设置,但 SYSTEM.BASE.TOPIC 除外。
- MQOTEL_PCTL_QMGR
- 使用队列管理器上的 OTELPCTL 值。 这是 SYSTEM.BASE.TOPIC 的默认设置。
- MQOTEL_PCTL_手册
- 自动传播不会发生。 如有需要,应用程序可手动传播跟踪上下文属性。
- MQOTEL_PCTL_AUTO
- 如果应用程序处于支持自动传播的环境中,则会发生自动传播。 如果队列管理器位于队列共享组中,则仅当所有队列管理器均在 IBM MQ 9.4.5 或之后启动时,才能设置此值。 否则,该命令将失败,并在队列管理器作业日志 CSQM533I 中输出消息 CSQM532I 和 ,以标识不支持 的队列 OTELPCTL管理器。
- 队列管理器是否会在消息发布到该主题时发出跨度。 参数标识符:MQIA_OTEL_TRACE。
有关跨度发射的更多信息,请参阅跨度发射。
可以是下列其中一个值:- MQOTEL_TRACE_AS_PARENT
- 队列管理器是否会在消息发布到该主题时发出跨度。 基于在与该主题相关的主题树中找到的第一个父管理节点设置。 这是默认设置,但 SYSTEM.BASE.TOPIC 除外。
- MQOTEL_TRACE_QMGR
- 使用队列管理器上的 OTELTRAC 值。 这是 SYSTEM.BASE.TOPIC 的默认设置。
- MQOTEL_TRACE_OFF
- 即使消息具有跟踪上下文,也不会输出跨度。
- MQOTEL_TRACE_ON
- 如果消息具有跟踪上下文,则会生成跨度。
- 发布到此主题的持久消息的传递机制 (参数标识 :MQIA_PM_DELIVERY)。值可以是:
- MQDLV_AS_PARENT
- 所使用的交付机制基于在与此主题相关的主题树中找到的第一个父管理节点的设置。
- MQDLV_ALL
- 必须将持久消息传递到所有订户,而不考虑 MQPUT 调用报告成功的持久性。 如果发生对任何订户的传递失败,那么没有其他订户接收到消息,并且 MQPUT 失败。
- MQDLV_ALL_DUR
- 必须将持久消息传递到所有持久订户。 将持久消息传递至任何一个非持久订户的失败不会将错误返回至 MQPUT 调用。 如果发生传递到持久订户的故障,那么不会有其他订户接收到消息,并且 MQPUT 将失败。
- MQDLV_ALL_AVAIL
- 持久消息将传递到可以接受该消息的所有订户。 将消息传递至任何一个订户的失败不会阻止其他订户接收到该消息。
- 是否要将此主题的代理预订 (即使不存在本地预订) 发送到直接连接的队列管理器 (参数标识 :MQIA_PROXY_SUB)。值可以是:
- MQTA_PROXY_SUB_FORCE
- 即使不存在本地预订,也会将代理预订发送到已连接的队列管理器。
- MQTA_PROXY_SUB_FIRSTUSE
- 仅当存在本地预订时,才会为此主题发送代理预订。
- 此队列管理器是将发布作为层次结构的一部分还是作为发布/预订集群的一部分传播到队列管理器 (参数标识 :MQIA_PUB_SCOPE)。值可以是:
- MQSCOPE_ALL
- 此主题的发布将传播到分层连接的队列管理器以及发布/预订集群连接的队列管理器。
- MQSCOPE_AS_PARENT
- 此队列管理器是将发布作为层次结构的一部分传播到队列管理器,还是作为发布/预订集群的一部分传播到队列管理器,这取决于在与此主题相关的主题树中找到的第一个父管理节点的设置。
MQSCOPE_AS_PARENT 是此参数的缺省值 (如果未指定任何值)。
- MQSCOPE_QMGR
- 此主题的发布不会传播到其他队列管理器。
注: 您可以通过在 "放置消息选项" 上使用 MQPMO_SCOPE_QMGR 逐个发布来覆盖此行为。 - 本地队列管理器的名称 (参数标识 :MQCA_CLUSTER_Q_MGR_NAME)。
字符串的最大长度为 MQ_Q_MGR_NAME_LENGTH
- 此队列管理器是将预订作为层次结构的一部分还是作为发布/预订集群的一部分 (参数标识 :MQIA_SUB_SCOPE) 传播到队列管理器。值可以是:
- MQSCOPE_ALL
- 此主题的预订将传播到分层连接的队列管理器以及发布/预订集群连接的队列管理器。
- MQSCOPE_AS_PARENT
- 此队列管理器是将预订作为层次结构的一部分传播到队列管理器,还是作为发布/预订集群的一部分传播到队列管理器,这取决于在与此主题相关的主题树中找到的第一个父管理节点的设置。
MQSCOPE_AS_PARENT 是此参数的缺省值 (如果未指定任何值)。
- MQSCOPE_QMGR
- 此主题的预订不会传播到其他队列管理器。
注: 您可以逐个预订地覆盖此行为,在预订描述符上使用 MQSO_SCOPE_QMGR 或在 DEFINE SUB 上使用 SUBSCOPE (QMGR)。 - 主题描述 (参数标识 :MQCA_TOPIC_DESC)。
最大长度为 MQ_TOPIC_DESC_LENGTH。
- 主题对象名 (参数标识 :MQCA_TOPIC_NAME)。
字符串的最大长度为 MQ_TOPIC_NAME_LENGTH
- 主题字符串 (参数标识 :MQCA_TOPIC_STRING)。
此字符串中的 "/" 字符具有特殊含义。 它将主题树中的元素进行定界。 主题字符串可以以 "/" 字符开头,但不需要。 以 "/" 字符开头的字符串与以 "/" 字符开头的字符串不同。 主题字符串不能以 "/" 字符结尾。
字符串的最大长度为 MQ_TOPIC_STR_LENGTH。
- 此对象是本地主题还是集群主题 (参数标识 :MQIA_TOPIC_TYPE)。值可以是:
- MQTOPT_LOCAL
- 此对象是本地主题。
- MQTOPT_CLUSTER
- 此对象是集群主题。
- 将发布消息 cannote 传递到其正确的订户队列 (参数标识 :MQIA_USE_DEAD_LETTER_Q) 时,应使用死信队列 (还是未传递的消息队列)。该值可能为:
- MQUSEDLQ_NO
- 无法传递到其正确订户队列的发布消息被视为未能将消息放入主题,并且根据 NPMSGDLV 和 PMSGDLV 的设置,应用程序的 MQPUT 将失败。
- MQUSEDLQ_YES
- 如果队列管理器 DEADQ 属性提供死信队列的名称,那么将使用该队列,否则 behvaiour 将与 MQUSEDLQ_NO 相同。
- MQUSEDLQ_AS_PARENT
- 是否使用死信队列取决于主题树中最接近的管理主题对象的设置。
- 预订的行为,包括对此主题执行的通配符 (参数标识 :MQIA_WILDCARD_OPERATION)。值可以是:
- MQTA_PASSTHRU
- 使用比此主题对象中的主题字符串更具体的通配符主题名称进行的预订将接收对此主题以及比此主题更具体的主题字符串进行的发布。 MQTA_PASSTHRU 是 IBM MQ随附的缺省值。
- MQTA_BLOCK
- 使用比此主题对象中的主题字符串更具体的通配符主题名称进行的预订不会接收到此主题或比此主题更具体的主题字符串的发布。
CapExpiry (MQCFIN)