用于命名 IBM MQ 对象的规则
IBM® MQ 对象名具有最大长度并且区分大小写。 并非每个对象类型都支持所有字符,许多对象都有关于名称唯一性的规则。
有许多不同类型的 IBM MQ 对象,并且每种类型的对象都可以具有相同的名称,因为它们存在于不同的对象名称空间中: 例如,本地队列和发送方通道都可以具有相同的名称。 但是,一个对象不能与同一名称空间中的另一个对象具有相同的名称:例如,本地队列不能与模型队列具有相同的名称,发送方通道不能与接收方通道具有相同的名称。
- 认证信息
- 通道
- 客户机通道
- 侦听器
- 名称列表
- 进程
- 队列
- 服务
- 存储类
- 预订
- Topic
对象名称的字符长度
- 认证信息
- 集群
- 侦听器
- 名称列表
- 进程定义
- 队列
- 队列管理器
- 服务
- 预订
- Topic
在 z/OS® 系统上,队列管理器最多必须为 4 个字符,并且只能为大写字符和数字字符。
- 通道对象名和客户机连接通道名的最大长度为 20 个字符。 请参阅 定义通道 以获取有关通道的更多信息。
- 主题字符串最多可以为 10240 个字节。 所有 IBM MQ 对象名都区分大小写。
- 预订名称最多可以为 10240 字节,并且可以包含空格。
- 存储类名的最大长度为 8 个字符。
- CF 结构名称的最大长度为 12 个字符。
对象名称中的字符
个字符之后 | 限制 |
---|---|
大写 A-Z |
|
小写 a-z |
|
数字 0-9 |
|
句点 (.) |
|
下划线 (_) |
|
正斜杠 (/) |
|
百分号 (%) |
|
- 不允许前导空白或嵌入空白。
- 不允许使用本地语言字符。
- 任何小于完整字段长度的名称都可以用空格填充到右边。 队列管理器返回的所有短名称总是用空格填充到右边。
队列名称
- 队列的名称有两个部分:
- 队列管理器的名称
- 队列管理器已知的队列的局部名
队列名称的每个部分都有 48 个字符长。
要引用本地队列,可以省略队列管理器的名称 (通过将其替换为空白字符或使用前导空字符)。 但是, IBM MQ 返回到程序的所有队列名称都包含队列管理器的名称。
共享队列 (可供其队列共享组中的任何队列管理器访问) 不能与同一队列共享组中的任何非共享本地队列同名。 此限制避免了应用程序在打算打开本地队列时误打开共享队列的可能性,反之亦然。 共享队列和队列共享组仅在 IBM MQ for z/OS上可用。
要引用远程队列,程序必须在完整队列名称中包含队列管理器的名称,或者必须存在远程队列的本地定义。
当应用程序使用队列名称时,该名称可以是本地队列的名称 (或一个队列的别名) ,也可以是远程队列的本地定义的名称,但应用程序不需要知道哪些内容,除非它需要从队列中获取消息 (当队列必须是本地队列时)。 当应用程序打开队列对象时, MQOPEN 调用会执行名称解析函数以确定要在哪个队列上执行后续操作。 这一点的重要意义在于,应用程序不依赖于在队列管理器网络中的特定位置定义的特定队列。 因此,如果系统管理员在网络中重新定位队列并更改其定义,那么不需要更改使用这些队列的应用程序。
保留对象名
以以下对象开头的对象名SYSTEM.为队列管理器定义的对象保留。 您可以使用 Alter, Define和 Replace 命令来更改这些对象定义以适合您的安装。 为 IBM MQ 定义的名称在 队列名称中完整列出。
在 IBM MQ for z/OS上,保留耦合设施应用程序结构名称 CSQSYSAPPL。