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