停止通道

使用 MQSC 命令 STOP CHANNEL 来停止通道。

使用 MQSC 命令

有关如何使用 MQSC 命令的信息,请参阅使用 MQSC 命令执行本地管理任务

您可以从源 CR 发出此命令。 有关源代码符号的解释,请参阅 z/OS® 上的 "使用命令 "。

同义词: STOP CHL

停止通道

读取语法图跳过可视语法图 STOP CHANNEL ( 通道名称 ) CHLDISP(DEFAULT)CHLDISP(PRIVATE)CHLDISP(SHARED)12CMDSCOPE(' ')CMDSCOPE(qmgr-名称)1CMDSCOPE(*)12CONNAME(连接名称)MODE(QUIESCE)MODE(FORCE)MODE(TERMINATE)QMNAME(QMNAME)STATUS(STOPPEDINACTIVE)
备注信息:
  • 1 仅当队列管理器是队列共享组的成员时,在 z/OS 上有效。
  • 2 仅在 z/OS上有效。

STOP CHANNEL 的使用说明

  1. 如果指定 QMNAME 或 CONNAME,STATUS 必须为 INACTIVE 或未指定。 请勿指定 QMNAME 或 CONNAME 和 STATUS(停止)。 无法为一个合作伙伴停止通道,但无法为其他合作伙伴停止通道。 这种功能可以由通道安全出口提供。 有关通道退出的更多信息,请参阅通道退出程序
  2. [z/OS]z/OS 上,命令服务器和通道启动器必须正在运行。
  3. 任何处于停止状态的通道都需要手动启动,它们不会自动启动。 有关重新启动已停止通道的信息,请参阅重新启动已停止通道。
  4. 可以向除 CLNTCONN 通道 (包括已自动定义的通道) 以外的任何类型的通道发出此命令。
  5. 如果同时存在本地定义的通道和同名的自动定义的集群发送方通道,那么该命令将应用于本地定义的通道。 如果没有本地定义的通道,但有多个自动定义的集群发送方通道,那么该命令将应用于上次添加到本地队列管理器存储库的通道。

STOP CHANNEL 的参数描述

(通道名称)
要停止的通道的名称。 此参数对于所有通道类型都是必需的。
[z/OS]CHLDISP
此参数仅适用于 z/OS ,并且可以采用以下值:
  • 缺省值
  • PRIVATE
  • SHARED

如果省略此参数,那么将应用 DEFAULT 值。 这取自通道对象的缺省通道处置属性 DEFCDISP

此参数与 CMDSCOPE 参数的各种值一起控制两种类型的通道:
SHARED
如果启动了接收通道来响应定向至队列共享组的入站传输,那么此接收通道是共享通道。

如果发送通道的传输队列的处置为 SHARED,那么将共享该发送通道。

PRIVATE
如果接收通道是为了响应定向到队列管理器的入站传输而启动的,那么该通道是专用通道。

如果发送通道的传输队列具有除 SHARED以外的处置,那么该发送通道为专用通道。

注意: 该处置与通道定义中队列共享组的处置所设置的处置无关。
CHLDISPCMDSCOPE 参数的组合还控制从哪个队列管理器操作通道。 可能的选项包括:
  • 在发出命令的本地队列管理器上。
  • 在组中的另一个特定指定队列管理器上。
  • 在组中的每个活动队列管理器上。
  • 在组中最适合的队列管理器上,由队列管理器本身自动确定。

下表汇总了 CHLDISPCMDSCOPE 的各种组合:

表 1. 用于 STOP CHANNEL 的 CHLDISP 和 CMDSCOPE
CHLDISP CMDSCOPE( ) 或 CMDSCOPE (local-qmgr) CMDSCOPE (qmgr-name) CMDSCOPE(*)
PRIVATE 作为本地队列管理器上的专用通道停止。 作为指定队列管理器上的专用通道停止 作为所有活动队列管理器上的专用通道停止
SHARED 对于 RCVR 和 SVRCONN 通道,停止为所有活动队列管理器上的共享通道。

对于 SDR , RQSTR 和 SVR 通道,请在其运行所在的队列管理器上作为共享通道停止。 如果通道处于不活动状态 (未运行) ,或者由于运行通道的通道启动程序已停止而处于 RETRY 状态,那么将在本地队列管理器上发出通道的 STOP 请求。

这可能会使用 CMDSCOPE 自动生成命令,并将其发送到相应的队列管理器。 如果队列管理器上没有将命令发送到的通道的定义,或者如果该定义不适合该命令,那么该命令将失败。

输入命令的队列管理器上通道的定义可用于确定实际运行该命令的目标队列管理器。 因此,通道定义必须一致。 不一致的通道定义可能会导致意外的命令行为。

不允许 不允许
[z/OS]CMDSCOPE
此参数仅适用于 z/OS ,并指定当队列管理器是队列共享组的成员时该命令的运行方式。
如果 CHLDISP 设置为 SHARED,那么 CMDSCOPE 必须为空或本地队列管理器。
' '
该命令在输入该命令的队列管理器上运行。 这是缺省值。
qmgr-名称
如果队列管理器在队列共享组中处于活动状态,那么该命令将在您指定的队列管理器上运行。

仅当您正在使用队列共享组环境并且已启用命令服务器时,才能指定队列管理器名称。

*
该命令在本地队列管理器上运行,并且还会传递到队列共享组中的每个活动队列管理器。 其效果与在队列共享组中的每个队列管理器上输入命令相同。
CONNAME (连接名称)
连接名称。 仅停止与指定连接名称匹配的通道。

使用 CONNAME 参数发出 STOP CHANNEL 命令时,请确保 CONNAME 参数中指定的值与 DISPLAY CHSTATUS 中显示的值完全一致。

方式
指定是否允许当前批处理以受控方式完成。 此参数是可选的。
QUIESCE
这是缺省值。
[UNIX、Linux、Windows、IBM i]多平台上,允许当前批次完成处理。
[z/OS]z/OS 上,当前报文处理完毕后信道停止。 (然后结束批处理,不再发送任何消息,即使有消息在传输队列上等待。)
对于接收通道,如果没有正在进行的批处理,那么通道将等待以下任一操作发生,然后再停止:
  • 要启动的下一个批处理
  • 下一个脉动信号 (如果正在使用脉动信号)

对于服务器连接通道,允许当前连接结束。

如果在服务器连接通道上发出 STOP CHANNEL channelname MODE (QUIESCE) 命令,那么 IBM® MQ 客户机基础结构将及时了解停止请求。 此时间取决于网络的速度。

如果客户机应用程序正在使用服务器连接通道,并且在发出命令时执行以下任一操作,那么 MQPUT 或 MQGET 操作将失败:
  • 设置了 PMO 选项 MQPMO_FAIL_IF_QUIESCING 的 MQPUT 操作。
  • 设置了 GMO 选项 MQGMO_FAIL_IF_QUIESCING 的 MQGET 操作。
客户机应用程序接收原因码 MQRC_CONNECTION_QUIESCING。
如果客户机应用程序正在使用服务器连接通道,并且正在执行以下任一操作,那么允许客户机应用程序完成 MQPUT 或 MQGET 操作:
  • 未设置 PMO 选项 MQPMO_FAIL_IF_QUIESCING 的 MQPUT 操作。
  • 未设置 GMO 选项 MQGMO_FAIL_IF_QUIESCING 的 MQGET 操作。
使用此连接的任何后续 FAIL_IF_QUIESCING 调用都将失败,并且带有 MQRC_CONNECTION_QUIESCING。 通常允许未指定 FAIL_IF_QUIESCING 的调用完成,尽管应用程序应及时完成此类操作,以允许通道结束。

如果客户机应用程序在服务器连接通道停止时未执行 MQ API 调用,那么它将通过发出对 IBM MQ 的后续调用来识别停止请求,并接收返回码 MQRC_CONNECTION_QUIESCING。

将 MQRC_CONNECTION_QUIESCING 返回码发送到客户机并允许完成任何未完成的 MQPUT 或 MQGET 操作 (如果需要) 后,服务器将结束服务器连接通道的客户机连接。

由于网络操作的计时不精确,因此客户机应用程序不应尝试进一步的 MQ API 操作。

FORCE
对于服务器连接通道,中断当前连接,返回 MQRC_CONNECTION_BROKEN。 对于其他通道类型,终止任何当前批处理的传输。 这很可能导致不确定的情况。

[z/OS]IBM MQ for z/OS 上,指定 FORCE 会中断任何正在进行的报文重新分配,这可能会导致 BIND_NOT_FIXED 报文被部分重新分配或顺序混乱。

TERMINATE
[z/OS]z/OS 上, TERMINATEFORCE 同义。

[UNIX、Linux、Windows、IBM i]在其他平台上, TERMINATE 会终止任何当前批次的传输。

这允许命令实际终止通道线程或进程。

对于服务器连接通道, TERMINATE 会中断当前连接,返回 MQRC_CONNECTION_BROKEN。

[z/OS]z/OS 上,指定 TERMINATE 会中断任何正在进行的报文重新分配,这可能会导致 BIND_NOT_FIXED 报文被部分重新分配或顺序混乱。

QMNAME (qmname)
队列管理器名称。 仅停止与指定的远程队列管理器匹配的通道。
状态
指定此命令停止的任何通道的新状态。 有关处于 STOPPED 状态的通道 ( 尤其是 z/OS上的 SVRCONN 通道) 的更多信息, 请参阅 重新启动已停止的通道
STOPPED
通道已停止。 对于发送方或服务器通道,传输队列设置为 GET(DISABLED)NOTRIGGER

如果未指定 QMNAMECONNAME ,那么这是缺省值。

不活动的
通道处于不活动状态。

如果指定了 QMNAMECONNAME ,那么这是缺省值。