ObjectName (MQCHAR48)
这是在由
ObjectQMgrName标识的队列管理器上定义的对象的局部名。 此名称可包含以下字符:- 大写字母字符(A 到 Z)
- 小写字母字符(a 到 z)
- 数字位(0 到 9)
- 句点 (.)、正斜杠 (/)、下划线 (_)、百分号 (%)
- 在使用 EBCDIC 片假名的系统上,不得使用小写字符。
- 打开 z/OS®:
- 避免使用以下划线开头或结尾的名称; 操作和控制面板无法处理这些名称。
- 百分号字符对于 RACF®具有特殊含义。 如果将 RACF 用作外部安全性管理器,那么名称不得包含百分比。 如果这样做,那么在使用 RACF 通用概要文件时,这些名称不会包含在任何安全性检查中。
- 在 IBM® i上,当在命令上指定时,必须将包含小写字符,正斜杠或百分号的名称括在引号中。 对于在结构中作为字段出现的名称或在调用时作为参数出现的名称,不得指定这些引号。
可以从两个不同的字段构建完整主题名称: ObjectName 和 ObjectString。 有关如何使用这两个字段的详细信息,请参阅 使用主题字符串。
以下要点适用于所指示对象的类型:
- 如果
ObjectName是模型队列的名称,那么队列管理器将使用模型队列的属性创建动态队列,并在ObjectName字段中返回所创建队列的名称。 只能在 MQOPEN 调用上指定模型队列; 模型队列在 MQPUT1 调用上无效。 - 如果
ObjectName是具有 TARGTYPE (TOPIC) 的别名队列的名称,那么将首先对指定的别名队列进行安全性检查; 当使用别名队列时,这是正常情况。 当安全性检查成功完成时, MQOPEN 调用将继续,并将像MQOT_TOPIC上的 MQOPEN 调用一样运行; 这包括对管理主题对象进行安全性检查。 - 如果
ObjectName和ObjectQMgrName标识本地队列管理器所属的队列共享组所拥有的共享队列,那么本地队列管理器上也不得存在同名的队列定义。 如果存在这样的定义 (本地队列,别名队列,远程队列或模型队列) ,那么调用将失败,原因码为 MQRC_OBJECT_NOT_UNIQUE。 - 如果要打开的对象是分发列表 (即,
RecsPresent存在且大于零) ,那么ObjectName必须为空或为空字符串。 如果不满足此条件,那么调用将失败,原因码为 MQRC_OBJECT_NAME_ERROR。 - 如果
ObjectType是 MQOT_Q_MGR ,那么将应用特殊规则; 在这种情况下,名称必须完全为空白,直到第一个空字符或字段结束。
当 ObjectName 是模型队列的名称时,这是 MQOPEN 调用的输入/输出字段,在所有其他情况下,这是仅输入字段。 此字段的长度由 MQ_Q_NAME_LENGTH 提供。 此字段的初始值是 C 中的空字符串,在其他编程语言中为 48 个空白字符。