首页 > 解决方案 > 我可以停止特定队列吗?

问题描述

在 IBM MQ 中是否可以通过控制台(命令行)停止队列?我知道如何用endmqm. 但是我可以运行一个控制台命令来停止一个队列吗?

标签: ibm-mq

解决方案


队列不能独立于队列管理器而停止。但是,根据您的设置,您可能会发现限制放入和/或进入/退出队列可以实现您想要的目标。这将允许您阻止应用程序将新消息添加到队列和/或从队列中删除消息。

这可以使用runmqsc界面中的命令来完成。https://www.ibm.com/support/knowledgecenter/SSFKSJ_latest/com.ibm.mq.ref.adm.doc/q083460_.htm

以下是您需要的命令:

runmqsc QUEUE_MANAGER_NAME
ALTER QLOCAL('QUEUE_NAME') GET(DISABLED)
ALTER QLOCAL('QUEUE_NAME') PUT(DISABLED)
EXIT

下面是我在队列管理器 MyQM1 上为名为 Q1 的队列禁用 PUT 和 GET 的命令和输出。

mqa(mqcli)# runmqsc MyQM1
5724-H72 (C) Copyright IBM Corp. 1994, 2020.
Starting MQSC for queue manager MyQM1.


ALTER QLOCAL('Q1') GET(DISABLED)
     1 : ALTER QLOCAL('Q1') GET(DISABLED)
AMQ8008I: IBM MQ Appliance queue changed.
ALTER QLOCAL('Q1') PUT(DISABLED)
     2 : ALTER QLOCAL('Q1') PUT(DISABLED)
AMQ8008I: IBM MQ Appliance queue changed.

我建议首先在测试环境中尝试一下,以确保它满足您的需求并且您的应用程序对错误消息的行为正确。例如“队列当前禁止 MQGET 调用。(2016)”


推荐阅读