ObjectName (MQCHAR48)

这是在由 ObjectQMgrName标识的队列管理器上定义的对象的局部名。 此名称可包含以下字符:
  • 大写字母字符(A 到 Z)
  • 小写字母字符(a 到 z)
  • 数字位(0 到 9)
  • 句点 (.)、正斜杠 (/)、下划线 (_)、百分号 (%)
此名称不得包含前导空格或嵌入空格,但可以包含尾部空格。 使用空字符来指示名称中重要数据的结束; 空字符及其后的任何字符被视为空白。 以下限制适用于指示的环境中:
  • 在使用 EBCDIC 片假名的系统上,不得使用小写字符。
  • 打开 z/OS®:
    • 避免使用以下划线开头或结尾的名称; 操作和控制面板无法处理这些名称。
    • 百分号字符对于 RACF®具有特殊含义。 如果将 RACF 用作外部安全性管理器,那么名称不得包含百分比。 如果这样做,那么在使用 RACF 通用概要文件时,这些名称不会包含在任何安全性检查中。
  • IBM® i上,当在命令上指定时,必须将包含小写字符,正斜杠或百分号的名称括在引号中。 对于在结构中作为字段出现的名称或在调用时作为参数出现的名称,不得指定这些引号。

可以从两个不同的字段构建完整主题名称: ObjectNameObjectString。 有关如何使用这两个字段的详细信息,请参阅 使用主题字符串

以下要点适用于所指示对象的类型:
  • 如果 ObjectName 是模型队列的名称,那么队列管理器将使用模型队列的属性创建动态队列,并在 ObjectName 字段中返回所创建队列的名称。 只能在 MQOPEN 调用上指定模型队列; 模型队列在 MQPUT1 调用上无效。
  • 如果 ObjectName 是具有 TARGTYPE (TOPIC) 的别名队列的名称,那么将首先对指定的别名队列进行安全性检查; 当使用别名队列时,这是正常情况。 当安全性检查成功完成时, MQOPEN 调用将继续,并将像MQOT_TOPIC上的 MQOPEN 调用一样运行; 这包括对管理主题对象进行安全性检查。
  • 如果 ObjectNameObjectQMgrName 标识本地队列管理器所属的队列共享组所拥有的共享队列,那么本地队列管理器上也不得存在同名的队列定义。 如果存在这样的定义 (本地队列,别名队列,远程队列或模型队列) ,那么调用将失败,原因码为 MQRC_OBJECT_NOT_UNIQUE。
  • 如果要打开的对象是分发列表 (即, RecsPresent 存在且大于零) ,那么 ObjectName 必须为空或为空字符串。 如果不满足此条件,那么调用将失败,原因码为 MQRC_OBJECT_NAME_ERROR。
  • 如果 ObjectType 是 MQOT_Q_MGR ,那么将应用特殊规则; 在这种情况下,名称必须完全为空白,直到第一个空字符或字段结束。

ObjectName 是模型队列的名称时,这是 MQOPEN 调用的输入/输出字段,在所有其他情况下,这是仅输入字段。 此字段的长度由 MQ_Q_NAME_LENGTH 提供。 此字段的初始值是 C 中的空字符串,在其他编程语言中为 48 个空白字符。