6.4. 管理操作
无论您是使用 JMX 或 JMS 消息来管理 AMQ Broker,您都可以使用相同的 API 管理操作。使用管理 API,您可以管理代理、地址和队列。
6.4.1. 代理管理操作
您可以使用管理 API 管理代理。
- 列出、创建、部署和销毁队列
可以使用
getQueueNames()
方法检索已部署队列的列表。可以使用管理操作
createQueue()、deployQueue()
或destroy
Queue()
在ActiveMQServerControl
上创建或销毁队列(通过ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
或资源名称服务器
)。如果队列已存在,则
createQueue
将失败,而deployQueue
不会进行任何操作。- 暂停和恢复队列
-
QueueControl
可以暂停并恢复底层队列。暂停队列后,它将接收消息,但不会发送邮件。恢复之后,它将开始发送已排队的消息(如果有)。 - 列出和关闭远程连接
使用
listRemoteAddresses()
检索客户端的远程地址。也可以使用closeConnectionsForAddress()
方法关闭与远程地址关联的连接。或者,使用
listConnectionIDs()
列出连接 ID,并使用listSessions()
列出给定连接 ID 的所有会话。- 管理事务
如果代理崩溃,代理重启时可能需要人工干预。使用以下方法帮助您解决遇到的问题:
使用
listPreparedTransactions()方法
列表,列出处于准备状态的事务(事务以 opaque Base64 Strings 表示)。使用
commitPreparedTransaction()或 rollbackPreparedTransaction()
提交或回滚给定的已准备事务,
从而解决各种事务。使用 listHeuristicCommit
Transactions()和
方法列出启发性完成的事务。listHeuristic
RolledBackTransactions- 启用和重置消息计数器
使用
enableMessageCounters()或
启用和禁用消息计数器。disableMessageCounters()
方法来使用 reset
AllMessageCounters()和
重置消息计数器。resetAllMessage
CounterHistories()方法- 检索代理配置和属性
-
ActiveMQServerControl
通过它的所有属性(例如getVersion()方法来检索代理的版本等)
公开代理的配置。 - 列出、创建和销毁核心网桥并转变
列出部署的 Core Bridge 并分别使用
getBridgeNames()
和getDivertNames()
方法转换。使用 createBridge()和 destroy
Bridge()或 create
Divert()或 destroy
Divert()和
或销毁destroyDivert()
创建(
通过ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
或资源名称服务器
)。- 停止代理并强制使用任何当前连接的客户端进行故障转移
在
ActiveMQServerControl 上使用 forceFailover
()(ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
或资源名称服务器
)注意因为这个方法实际上会停止代理,所以可能会收到错误。确切的错误取决于您用于调用方法的管理服务。