5.4. 管理操作
无论您使用 JMX 或 JMS 消息来管理 AMQ Broker,您都可以使用相同的 API 管理操作。通过使用管理 API,您可以管理代理、地址和队列。
5.4.1. 代理管理操作
您可以使用管理 API 来管理代理。
- 列出、创建、部署和销毁队列
部署的队列列表可以通过
getQueueNames()
方法来检索。可以使用管理操作创建Queue()、
部署
或销毁队列。Queue()
(通过或销毁Queue()
ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
或资源名称服务器
)来创建如果在部署Queue
时队列已存在,则创建Queue
将失败。- 暂停和恢复队列
-
QueueControl
可以暂停并恢复底层队列。当队列暂停时,它将接收信息,但不会发送它们。恢复后,它将开始传送排队的消息(如果有)。 - 列出和关闭远程连接
使用
列表RemoteAddresses()
检索客户端的远程地址。也可以使用closeConnectionsForAddress()
方法关闭与远程地址关联的连接。另外,也可使用
listConnectionIDs()
列出连接 ID,再使用listSessions()
列出给定连接 ID 的所有会话。- 管理事务
如果代理崩溃,代理重启时,一些事务可能需要人工干预。使用以下方法帮助解决遇到的问题。
使用
listPreparedTransactions()
方法列表,列出处于 ready 状态中的事务(事务以 opaque Base64 Stringsactions()方法列表表示)。使用
commitPreparedTransaction()
或rollbackPreparedTransaction()
提交或回滚所准备的事务,以解决 heuristic 事务。使用
listHeuristicCommittedTransactions()
和listHeuristicRolledBackTransactions
方法列出 heuristicly 完成的事务。- 启用和重置消息计数器
使用
enableMessageCounters()
或disableMessageCounters()
方法启用和禁用消息计数器。使用
resetAllMessageCounters()
和resetAllMessageCounterHistories()
方法重置消息计数器。- 检索代理配置和属性
-
ActiveMQServerControl
通过其所有属性(例如,getVersion()
方法来检索代理的版本等)公开代理的配置。 - 列出、创建和销毁 Core Bridge 和 diverts
列出部署的 Core Bridge,并使用
getBridgeNames()
和getDivertNames()
方法进行移动。使用网桥创建或销毁,使用
createBridge()
和destroyBridge()
或 destroyDivert()上的createDivert()
和destroyDivert()
(通过ObjectName
org.apache.artemis:broker="BROKER_NAME"
或资源名称server
)创建或销毁。- 停止代理并强制在任何当前附加的客户端发生故障转移
使用
ActiveMQServerControl
上的forceFailover()
(带有ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
或 resource nameserver
)注意因为这个方法实际停止代理,所以可能会收到错误。确切的错误取决于您用于调用方法的管理服务。