主题属性

IBM® MQ 主题是标识发布内容的 IBM MQ 对象。 您可以为主题设置属性。 某些主题属性特定于 z/OS® 主题。 此外,某些属性只能在创建主题时更改。 创建 IBM MQ 主题后,无法修改这些属性。

下表列出了 IBM MQ 主题的所有属性。

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

常规

下表列出了 IBM MQ " 主题属性 " 对话框的 常规 页面上的属性。
属性 含义 MQSC 参数
主题名称 在创建主题之后就无法更改此值。 此参数是必需参数,并且不能包含空字符串。

要创建的管理主题定义的唯一标识。 最多允许使用 48 个字符。

主题名称不得与所选队列管理器上定义的任何其他主题定义相同。

TOPNAME
主题类型 此值是只读的。 此值定义主题是在本地 (Local) 还是在集群中 (Cluster)。 不适用
主题字符串 在创建主题之后就无法更改此值。 此参数是必需参数,并且不能包含空字符串。

此字符串中的“/”字符具有特殊含义。 它将主题树中的元素进行定界。 主题字符串可以使用“/”字符开头,但这不是必需的。 使用“/”字符开头的字符串与不使用“/”字符开头的字符串不同。

主题字符串不得 与另一主题对象定义已表示的任何其他主题字符串相同。 主题字符串的最大长度为 10 240 个字符。

TOPICSTR
描述 此值是管理员输入的字符串。 它包含关于主题的描述性信息。 它必须只包含可显示的字符。 最多 64 个字符。

如果对所选队列管理器使用了不在编码字符集标识(CCSID)中的字符,那么在将信息发送至其他队列管理器时,可能会错误地转换这些字符。

DESC
发布 此属性控制是否可以针对主题发布消息。 缺省值是与父代一样。 提供的其他两个选项如下:

允许,它表示已授权的应用程序可以针对主题发布消息。

禁止,它表示不能针对主题发布消息。

PUB
预订 此属性控制消息是否可以预订主题。 缺省值是与父代一样。 提供的其他两个选项如下:

允许,它表示已授权的应用程序可以预订主题。

禁止,它表示应用程序不能预订主题。

SUB
持久预订 此属性控制主题是否允许进行持久预订。 缺省值是与父代一样。 提供的其他两个选项如下:

允许,它表示应用程序可以对主题进行持久预订。

禁止,它表示应用程序不能对主题进行持久预订。

DURSUB
缺省优先级 针对主题发布的消息的缺省优先级。 缺省值是与父代一样

可以在 0(最低优先级)至 9(最高优先级)范围内设置缺省优先级。

DEFPRTY
缺省持久性 新主题的缺省持久性是与父代一样。 选择持久以指定使用 MQPER_PERSISTENCE_AS_Q_DEF 的应用程序所创建的消息成为持久消息。 选择非持久以指定使用 MQPER_PERSISTENCE_AS_Q_DEF 的应用程序所创建的消息成为非持久消息。 DEFPSIST
模型持久队列

此值是管理员输入的字符串。 它包含那些请求队列管理器管理其发布目标的持久预订所使用的模型队列的名称。

该名称最多允许使用 48 个字符。

如果此字段为空白,那么将认为它是与父代一样

如果为集群主题指定模型队列,那么必须确保在可使用该主题进行持久预订的集群中的每个队列管理器上定义此队列。

从此模型创建的动态队列具有前缀 SYSTEM.MANAGED.DURABLE

MDURMDL
模型非持久队列 此值是管理员输入的字符串。 它包含那些请求队列管理器管理其发布目标的非持久预订所使用的模型队列的名称。

该名称最多允许使用 48 个字符。

如果此字段为空白,那么将认为它是与父代一样

如果为集群主题指定模型队列,那么必须确保在可使用该主题进行非持久预订的集群中的每个队列管理器上定义此队列。

从此模型创建的动态队列具有前缀 SYSTEM.MANAGED.NDURABLE

MNDURMDL
QSG 处置 主题的队列共享组处置。 可以将队列共享组处置设置为以下三个值之一:
  • 队列管理器意味着对象定义仅可用于主管它的队列管理器。
  • 意味着对象定义存储在共享库中,并且队列共享组中的每个队列管理器都有该定义的副本。
  • 副本意味着对象定义是队列管理器在共享库中的定义的副本。
当显示主题属性时,该字段显示为只读。
QSGDISP
缺省 PUT 响应类型 放置消息的缺省响应类型。 缺省值是与父代一样。 提供的其他两个选项如下:

同步,它表示以同步方式放置响应。

异步,它表示以异步方式放置响应。

DEFPRESP
非持久消息传送

针对此主题发布的非持久消息的传递方法。 四个选项为:

与父代一样,使用的传递机制基于主题树中找到的第一个与此主题相关的父代管理节点的设置。 这是 IBM MQ随附的缺省值,但您的安装可能已对其进行了更改。

至所有可用订户,非持久消息将传递至所有可以接受该消息的订户。 将消息传递至任何一个订户的失败不会阻止其他订户接收到该消息。

至所有持久订户,必须将非持久消息传递至所有持久订户。 将非持久消息传递至任何一个非持久订户的失败不会将错误返回至 MQPUT 调用。 如果至某个持久订户的传递失败,那么其他订户也不会接收到消息,并且 MQPUT 调用将失败。

至所有订户,无论 MQPUT 调用是否一直报告成功,必须将非持久消息传递至所有订户。 如果至任何一个订户的传递失败,那么其他订户也不会接收到消息,并且 MQPUT 调用将失败。

NPMSGDLV
持久消息传送

针对此主题发布的持久消息的传递方法。 有四个选项:

与父代一样,使用的传递机制基于主题树中找到的第一个与此主题相关的父代管理节点的设置。 这是 IBM MQ随附的缺省值,但您的安装可能已对其进行了更改。

至所有可用订户,持久消息将传递至所有可以接受该消息的订户。 将消息传递至任何一个订户的失败不会阻止其他订户接收到该消息。

至所有持久订户,必须将持久消息传递至所有持久订户。 将持久消息传递至任何一个非持久订户的失败不会将错误返回至 MQPUT 调用。 如果至某个持久订户的传递失败,那么其他订户也不会接收到消息,并且 MQPUT 调用将失败。

至所有订户,无论 MQPUT 调用是否一直报告成功,必须将持久消息传递至所有订户。 如果至任何一个订户的传递失败,那么其他订户也不会接收到消息,并且 MQPUT 调用将失败。

PMSGDLV
通配符操作 此值控制与主题相关的通配符预订的行为。 两个值为:

阻塞。 如果预订针对的通配符主题不及此主题对象的主题字符串明确,这些预订将不会接收到对此主题或比此主题更明确的主题字符串进行的发布。

传递。 如果预订针对的通配符主题不及此主题对象的主题字符串明确,这些预订会接收到对此主题以及比此主题更明确的主题字符串进行的发布。 这是缺省值。

WILDCARD
使用死信队列 指定当无法将发布消息传递至其正确的订户队列时,是否使用死信队列。 共有三个可能的值:
  • 表示无法传递到其正确订户队列的发布消息被视为未能将消息放入其中,并且根据 非持久消息传递持久消息传递的设置,应用程序对主题的 MQPUT 失败。
  • 表示如果队列管理器 死信队列 属性提供死信队列的名称,那么将使用该队列。 否则此行为与相同。
  • 作为父级表示使用“死信队列”的决策基于主题树中最接近的管理主题对象的设置。 这是 IBM MQ 随附的缺省值,但您的安装可能已对其进行了更改。
USEDLQ
定制 Custom 参数仅供 IBM 使用,在引入单独的属性之前保留用于配置新功能部件。 可能的值为 0 或更多属性/值对的列表,采用 MQSC 样式语法,至少由一个空格分隔。
属性名称和值区分大小写,并且必须使用大写形式指定。 值可以包含空格、括号和单引号(必须使用另一个单引号进行转义)。 其他字符(包括嵌套括号 ())可以通过在两侧添加单引号进行包含。 有效语法的示例有:
  • CUSTOM('')
  • CUSTOM('A(B)')
  • CUSTOM('C(D) E(F)')
  • CUSTOM('G(5000) H(''9.20.4.6(1415)'')')

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

定制

分布式发布/预订

下表列出了 IBM MQ " 主题属性 " 对话框的 分布式发布/预订 页面上的属性。
属性 含义 MQSC 参数
代理预订行为 代理预订与创建它们的队列管理器名称相关联。 如果存在包含发布主题的代理预订,那么发布只会转发至直接连接的队列管理器。 此值具有以下两个选项:

强制。 这样会强制将与集群中每个队列管理器内此主题关联的主题字符串的通配符式代理预订发送至发布/预订拓扑中的每个队列管理器, 而不管是否已进行任何本地预订。 该强制代理预订通过拓扑传播后,所有新的预订会立即收到来自其他相连队列管理器的所有发布,尽管所有发布会传播到集群中所有其他队列管理器,而不管是否请求预订。

在主题树中给定级别设置此值,还可防止为主题树中后续级别的单个主题字符串生成代理预订,从而减少代理预订开销。

首次使用。 对于此主题对象中或其下方的每个唯一的主题字符串,在以下场景中会将代理预订以异步方式发送至所有邻近队列管理器:
  • 创建本地预订时。
  • 收到必须传播至进一步直连的队列管理器的代理预订时。
PROXYSUB
发布作用域
可以使用 PUBSCOPE 主题属性在管理上控制发布作用域。 可以将此属性设置以下三个值之一:
  • 与父代一样。 这是缺省值。 发布作用域设置为与父队列管理器的值相同。
  • 队列管理器。 发布将仅传递至本地订户。
  • 全部。 发布将通过直接连接的队列管理器传递至本地订户和远程订户。
PUBSCOPE
预订作用域
可以使用 SUBSCOPE 主题属性在管理上控制预订作用域。 可以将此属性设置以下三个值之一:
  • 与父代一样。 这是缺省值。 预订作用域设置为与父队列管理器的值相同。
  • 队列管理器。 预订仅接收本地发布,代理预订不会传播至远程队列管理器。
  • 全部。 代理预订会传播至远程队列管理器,订户将接收本地和远程发布。
SUBSCOPE
多点广播 该属性控制是否将该主题视为可以使用多点广播进行传输。 一共有四个可能的值:

与父代一样。 主题的多点广播属性继承自父代。

禁用。 该节点不允许任何多点广播流量。

启用。 该节点允许多点广播流量。

仅限。 仅允许支持多点广播的客户机进行预订。

MCAST
通信信息 通信信息对象名。 在树中有多个需要相同多点广播传输属性的主题时,请考虑将这些属性置于可以引用的单独对象中。 COMMINFO

集群

下表列出了 IBM MQ " 主题属性 " 对话框的 " 集群 " 页面上的属性。
属性 含义 MQSC 参数
集群名称 要使主题成为集群主题,可配置此属性。 执行此操作后,位于该点或主题树中的发布者或订户所使用的任何主题均在集群中的所有队列管理器间共享,发布到主题树的集群分支的消息也会自动路由至集群中其他队列管理器上的预订。 集群
集群对象状态
此集群中该主题对象的当前状态。 其值如下所示:
活动的
集群主题已正确配置,并由此队列管理器遵循。
暂挂
仅供托管队列管理器查看,创建此主题但尚未将完整存储库传播至集群时报告此状态。 原因可能是主机队列管理器未连接至完整存储库,或者完整存储库已将该主题视为无效主题。
无效
此集群主题定义与集群中先前的定义相冲突,因此当前未处于活动状态。
错误
该主题对象发生了错误。
该参数通常用于当在不同的队列管理器上定义了同一集群主题的多个定义且这些定义彼此不同时帮助进行诊断。
CLSTATE
集群路由
用于 CLUSTER 参数所定义集群中的主题的路由行为。 共有两个可能的值:
直接
当在队列管理器上配置直接路由集群主题时,集群中的所有队列管理器都可识别集群中的所有其他队列管理器。 执行发布和预订操作时,每个队列管理器便会直接连接到所有其他队列管理器。
TOPICHOST
使用主题主机路由时,集群中的所有队列管理器都可识别用于托管路由主题定义的集群队列管理器。 在执行发布和预订操作时,集群中的队列管理器只会连接到这些主题主机队列管理器,而不会彼此直接连接。 主题主机队列管理器负责将发布从执行发布的队列管理器路由至具有匹配预订的队列管理器。
CLROUTE

统计信息

下表列出了 IBM MQ " 主题属性 " 对话框的 统计信息 页面上的属性。
属性 含义 MQSC 参数
变更日期 不能更改此值,它仅供参考。

这是最近一次变更主题属性的日期。

ALTDATE
变更时间 不能更改此值,它仅供参考。

这是最近一次变更主题属性的时间。

ALTTIME