endmqm (结束队列管理器)
停止队列管理器或切换到备用队列管理器 或副本队列管理器。
用途
- 受控或停顿关闭
- 立即关闭 (immediate shutdown)
- 先发制人地关闭
- 等待关闭
endmqm 命令以停止单个实例队列管理器的相同方式停止多实例队列管理器的所有实例。 您可以在活动实例或多实例队列管理器的其中一个备用实例上发出 endmqm 。 必须在活动实例上发出 endmqm 以结束队列管理器。
如果对多实例队列管理器的活动实例发出 endmqm 命令,那么可以允许备用实例在当前活动实例完成关闭时切换为新的活动实例。
如果在多实例队列管理器的备用实例上发出 endmqm 命令,那么可以通过添加 -x 选项来结束备用实例,并使活动实例保持运行状态。 如果在不带 -x 选项的备用实例上发出 endmqm ,那么队列管理器将报告错误。
您可以在 Native HA 组的活动节点或副本节点上发布 endmqm 命令。 执行检查以查看停止指定实例是否会破坏组的定额,如果会,那么该命令将失败。 如果在活动实例上发出 endmqm
-s ,那么该实例将停止,并且其中一个副本将成为活动实例。 如果在副本实例上发出 endmqm -x ,那么该实例将停止。
发出 endmqm 命令将影响通过服务器连接通道连接的任何客户机应用程序。 效果因所使用的参数而异,但就像在三种可能的模式中发出了一条 STOP CHANNEL 命令一样。 请参阅 停止 MQI 通道,以获取有关 STOP CHANNEL 方式对服务器连接通道的影响的信息。 endmqm 可选参数描述说明它们将等效于哪个 STOP CHANNEL 方式。
必须从与您正在使用的队列管理器相关联的安装中使用 endmqm 命令。 您可以使用 dspmq -o installation 命令来查明队列管理器与之关联的安装。
队列管理器的属性以及与其关联的对象不受 endmqm 命令影响。 您可以使用 strmqm (启动队列管理器) 命令重新启动队列管理器。
要删除队列管理器,请将其停止,然后使用 dltmqm (删除队列管理器) 命令。
Syntax
必需参数
- QMgrName
- 要停止的消息队列管理器的名称。
可选参数
- -c
- 受控 (或停顿) 关闭。 此参数是缺省值。
队列管理器将停止,但仅在所有应用程序都已断开连接后停止。 当前正在处理的任何 MQI 调用都已完成。 在应用程序断开连接和队列管理器实际停止之间的短暂时间内发出 dspmq(显示队列管理器) 命令(这种情况不太可能发生), dspmq(显示队列管理器) 命令可能会暂时将状态报告为Ending immediately,即使请求了受控关闭。
控制权将立即返回给您,并且不会在队列管理器停止时通知您。
对通过服务器连接通道连接的任何客户机应用程序的影响相当于以 QUIESCE 方式发出的 STOP CHANNEL 命令。
- -i
- 立即关闭。 队列管理器在完成当前正在处理的所有 MQI 调用后停止。 发出命令后发出的任何 MQI 请求都失败。 下次启动队列管理器时,将回滚任何不完整的工作单元。
在队列管理器结束后返回控制权。
对通过服务器连接通道连接的任何客户机应用程序的影响相当于以 FORCE 方式发出的 STOP CHANNEL 命令。
- -p
- 抢先关闭。重要信息: 仅在特殊情况下 (例如,当队列管理器未因正常 endmqm 命令而停止时) 使用此类型的关闭。
队列管理器可能会停止而不等待应用程序断开连接或 MQI 调用完成。 这可能会为 IBM® MQ 应用程序提供不可预测的结果。 关闭方式设置为 立即关闭。 如果队列管理器在几秒后仍未停止,那么将升级关闭方式,并且将停止所有剩余的队列管理器进程。
对通过服务器连接通道连接的任何客户机应用程序的影响相当于以 TERMINATE 方式发出的 STOP CHANNEL 命令。
- -r
- 开始尝试重新连接可重新连接的客户机。 此参数的作用是重新建立客户机与其 队列管理器组中其他队列管理器的连接。
- -s
对于多实例队列管理器,在关闭后切换到备用队列管理器实例。 该命令会在结束活动实例之前检查是否有备用实例正在运行。 它不会在结束之前等待备用实例启动。 与队列管理器的连接因活动实例关闭而中断。 可重新连接的客户机开始尝试重新连接。 您可以配置客户机的重新连接选项,以仅重新连接到同一队列管理器的另一个实例,或者重新连接到队列管理器组中的其他队列管理器。
对于本地 HA 组的活动实例,在关闭后切换到副本实例。- 指定
-r选项以帮助客户机应用程序重新连接到另一个实例。 - 如果此实例不是本机 HA 组中的活动实例,那么该命令将失败。
- 如果结束此活动实例将导致组定额失败,那么该命令将失败。 (如果其他实例在您运行此命令的同时结束或变为不可用,那么定额检查可能不会检测到此情况,本机 HA 组将结束,并且仅当有足够的实例可用时才能重新启动。)
- 指定
- -w
- 等待关闭。
此类型的关闭等同于受控关闭,只是只有在队列管理器停止后才会将控制返回给您。 您接收到消息Waiting for queue manager qmName to end关闭正在进行。 在应用程序断开连接和队列管理器实际停止之间的短暂时间内发出 dspmq(显示队列管理器) 命令(这种情况不太可能发生), dspmq(显示队列管理器) 命令可能会暂时将状态报告为Ending immediately,即使请求了受控关闭。
对通过服务器连接通道连接的任何客户机应用程序的影响相当于以 QUIESCE 方式发出的 STOP CHANNEL 命令。
- -x
对于多实例队列管理器,结束队列管理器的备用实例,而不结束队列管理器的活动实例。
对于本地 HA 组的副本实例,请停止该实例:- 如果此实例是本机 HA 组中的活动实例,那么该命令将失败。
- 如果结束此副本实例将导致组定额失败,那么该命令将失败。 (如果其他实例在您运行此命令的同时结束或变为不可用,那么定额检查可能不会检测到此情况,本机 HA 组将结束,并且仅当有足够的实例可用时才能重新启动。)
- -z
- 禁止命令上的错误消息。
-t <间隔- 尝试在 <interval> 秒内结束队列管理器的目标时间,将应用程序断开连接的阶段升级。 允许完成基本队列管理器维护任务,这可能会延长队列管理器结束阶段。 (更多信息,请参阅在目标时间内结束队列管理器 )
-tp <间隔- 尝试在 <interval> 秒内结束队列管理器的目标时间,将应用程序断开连接的阶段升级。 必要时,将中断基本队列管理器维护任务。
返回码
| 返回码 | 描述 |
|---|---|
| 0 | 队列管理器已结束 |
| 3 | 正在创建队列管理器 |
| 16 | 队列管理器不存在 |
| 39 | 指定的参数无效 |
| 40 | 队列管理器不可用 |
| 49 | 队列管理器正在停止 |
| 58 | 检测到对安装的使用不一致 |
| 62 | 队列管理器与其他安装相关联 |
| 69 | 存储不可用 |
| 71 | 意外错误 |
| 77 | IBM MQ 队列管理器无法切换 |
| 79 | 未结束 IBM MQ 队列管理器 QmgrName 的活动实例 |
| 90 | 未结束 IBM MQ 队列管理器 QmgrName 的备用实例 |
| 119 | 已拒绝许可权 |
示例
- 此命令以受控方式结束名为
mercury.queue.manager的队列管理器。 允许当前连接的所有应用程序断开连接。endmqm mercury.queue.manager - 此命令立即结束名为
saturn.queue.manager的队列管理器。 所有当前 MQI 调用都已完成,但不允许新的 MQI 调用。endmqm -i saturn.queue.manager
| endmqm 选项 | 本地计算机 | 远程机器 | RC | 消息 | 结果 |
|---|---|---|---|---|---|
| 活动 | None | 0 | - | 队列管理器已结束。 | |
| 备用 | 队列管理器已结束,包括备用实例。 | ||||
| 备用 | 活动 | 90 | AMQ8368 | IBM MQ 队列管理器 QmgrName 的备用实例未结束。 | |
| -s | 活动 | None | 77 | AMQ7276 | IBM MQ 队列管理器无法切换。 |
| 备用 | 0 | - | 队列管理器 QMNAME 已结束,允许切换到备用实例。 | ||
| 备用 | 活动 | 90 | AMQ8368 | IBM MQ 队列管理器 QmgrName 的备用实例未结束。 | |
| -x | 活动 | None | 79 | AMQ8367 | 未结束 IBM MQ 队列管理器 QmgrName 的活动实例。 |
| 备用 | |||||
| 备用 | 活动 | 0 | - | 队列管理器 QMNAME 的备用实例已结束。 |
| endmqm 选项 | 本地计算机 | 远程机器 | RC | 消息 | 结果 |
|---|---|---|---|---|---|
| 活动 | None | 0 | - | 队列管理器已结束。 | |
| 备用 | 队列管理器已结束,包括备用实例。 | ||||
| 备用 | 活动 | 90 | AMQ8368 | IBM MQ 队列管理器 QmgrName 的备用实例未结束。 | |
|
本机 HA 处于活动状态 | - | 0 | - | 活动实例已结束。 其余实例进行通信并选择新的 "活动" (如果它们可以找到定额)。 |
| 本机 HA 副本 | - | 0 | - | 副本实例已结束。 剩余实例将继续 (如果它们具有定额)。 | |
| -s | 活动 | None | 77 | AMQ7276 | IBM MQ 队列管理器无法切换。 |
| 备用 | 0 | - | 队列管理器 QMNAME 已结束,允许切换到备用实例。 | ||
| 备用 | 活动 | 90 | AMQ8368 | IBM MQ 队列管理器 QmgrName 的备用实例未结束。 | |
-s |
本机 HA 处于活动状态 | 法定人数将保持不变 | 0 | - | 活动实例已结束。 |
| 本机 HA 处于活动状态 | 定额将被破坏 | 79 | AMQ7275 | 实例未结束,因为这将导致定额丢失。 | |
| 本机 HA 副本 | - | 90 | AMQ7277 | 此操作对副本实例无效。 | |
| -x | 活动 | None | 79 | AMQ8367 | 未结束 IBM MQ 队列管理器 QmgrName 的活动实例。 |
| 备用 | |||||
| 备用 | 活动 | 0 | - | 队列管理器 QMNAME 的备用实例已结束。 | |
-x |
本机 HA 处于活动状态 | - | 79 | AMQ8367 | 未结束 IBM MQ 队列管理器 "MG" 的活动实例。 |
| 本机 HA 副本 | 法定人数将保持不变 | 0 | - | 副本实例已结束。 | |
| 本机 HA 副本 | 定额将被破坏 | 90 | AMQ7275 | 实例未结束,因为这将导致定额丢失。 |
