我可以停止特定队列吗?
Can I stop a specific queue?
是否可以在 IBM MQ 中通过控制台(命令行)停止队列?
我知道如何使用 endmqm
停止队列管理器。但是我可以 运行 一个控制台命令来停止一个队列吗?
无法独立于队列管理器停止队列。
但是,您可能会发现限制 puts and/or gets on/from 队列可以达到您想要的目标,具体取决于您的设置。这将允许您阻止应用程序向队列添加新消息and/or 从队列中删除消息。
这可以使用 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)”
是否可以在 IBM MQ 中通过控制台(命令行)停止队列?
我知道如何使用 endmqm
停止队列管理器。但是我可以 运行 一个控制台命令来停止一个队列吗?
无法独立于队列管理器停止队列。 但是,您可能会发现限制 puts and/or gets on/from 队列可以达到您想要的目标,具体取决于您的设置。这将允许您阻止应用程序向队列添加新消息and/or 从队列中删除消息。
这可以使用 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)”