打开和关闭对象

此信息提供了有关打开和关闭 IBM® MQ 对象的洞察。

要执行以下任何操作,必须首先 打开 相关 IBM MQ 对象:
  • 将消息放置到队列上
  • 从队列获取(浏览或检索)消息
  • 设置对象的属性
  • 查询任何对象的属性

使用 MQOPEN 调用打开对象,同时使用此调用的选项指定要对此对象执行的操作。 唯一的例外是,希望在队列上放置单条消息,然后立即关闭此队列。 在这种情况下,您可以通过使用 MQPUT1 调用来绕过 正在打开 阶段 (请参阅 使用 MQPUT1 调用将一条消息放入队列 )。

使用 MQOPEN 调用打开对象之前,必须将程序连接到队列管理器。 对于所有环境,在 连接到队列管理器以及与队列管理器断开连接中对此进行了详细说明。

您可以打开四种类型的 IBM MQ 对象:
  • 队列
  • 名称列表
  • 进程定义
  • 队列管理器
通过使用 MQOPEN 调用所采用的相同方式打开所有这些对象。 有关 IBM MQ 对象的更多信息,请参阅对象类型

您可以多次打开相同对象,每次会获得一个新的对象句柄。 您可能希望使用一个句柄浏览队列上的消息,使用另一个句柄从相同队列移除消息。 这可节省关闭和重新打开相同对象时使用的资源,防止耗尽资源。 还可打开队列以同时浏览移除消息。

此外,可以使用单个 MQOPEN 打开多个对象,使用 MQCLOSE 关闭多个对象。 有关如何执行此操作的信息,请参阅 分发列表

尝试打开对象时,队列管理器会检查针对在 MQOPEN 调用中指定的选项,您是否有权打开此对象。

程序从队列管理器断开连接时,会自动关闭对象。 在 IMS 环境中,当程序在 GU (get unique) IMS 调用后开始处理新用户时,将强制断开连接。 在 IBM i 平台上,当作业结束时,将自动关闭对象。

关闭打开的对象是很好的编程实践。 使用 MQCLOSE 调用执行此操作。

使用以下链接了解有关打开和关闭对象的更多信息: