ActiveMQ Classic 命令行工具参考
常见问题 > 使用 Apache ActiveMQ Classic > ActiveMQ Classic 命令行工具参考
命令行工具
当前脚本包含管理 ActiveMQ 的全部功能。
- activemq - 运行 ActiveMQ 代理 (参见 Unix Shell 脚本)
在 5.4.1 之前的版本中,除控制服务本身之外的一些管理功能是 “activemq-admin” 脚本的一部分。
该脚本目前仍然是发行版的一部分,为 Windows 用户提供对此的访问权限 -
- activemq-admin - 管理代理实例
在 5.0 之前的版本中,activemq-admin 脚本的功能分散在多个脚本中,例如
- shutdown - 关闭 ActiveMQ 代理
- list - 列出指定 JMX 上下文中运行的所有代理
- query - 查询 JMX 上下文以获取代理统计信息和信息
- bstat - 预定义查询,显示有用的代理统计信息
- browse - 浏览特定队列的消息
- purge - 删除与消息选择器匹配的选定目标的消息
activemq 脚本
该脚本说明适用于 Windows 平台。 对于 Unix 平台,它适用于 5.4.0 之前的代理版本。 在 5.4.0 及更高版本中,ActiveMQ Classic 附带了增强的 Unix Shell 脚本
脚本名称 | activemq.bat, activemq |
任务用法 | activemq [选项] [配置] 或 java -jar run.jar start [选项] [配置] |
描述 | 脚本通过指定代理配置文件或通过代理 URI 配置来运行 ActiveMQ 代理。 |
选项
选项名称 | 语法 | 示例 | 描述 |
---|---|---|---|
系统定义选项 | -D |
-Dactivemq.home=c:/ActiveMQ | 设置系统属性。 例如,Systems.getProperty(“activemq.home”); 将返回 c:/ActiveMQ |
帮助选项 | -h 或 -? 或 –help | activemq –help | 显示 activemq 脚本的帮助消息。 |
版本选项 | –version | activemq –version | 显示 activemq 版本信息。 |
示例
示例 | 描述 |
---|---|
activemq | 使用默认的 “xbean:activemq.xml” 作为代理配置文件运行代理。 |
activemq xbean:myconfig.xml | 使用位于类路径中的文件 myconfig.xml 作为代理配置文件运行代理。 |
activemq xbean:file:./conf/broker1.xml | 使用位于相对文件路径 ./conf/broker1.xml 中的文件 broker1.xml 作为代理配置文件运行代理。 |
activemq xbean:file:C:/ActiveMQ/conf/broker2.xml | 使用位于绝对文件路径 C:/ActiveMQ/conf/broker2.xml 中的文件 broker2.xml 作为代理配置文件运行代理。 |
activemq broker:(tcp://127.0.0.1:61616, tcp://127.0.0.1:5000)?useJmx=true | 运行具有两个传输连接器且启用 JMX 的代理。¹ |
activemq broker:(tcp://127.0.0.1:61616, network:tcp://127.0.0.1:5000)?persistent=false | 运行具有 1 个传输连接器和 1 个网络连接器且持久性禁用的代理。¹ |
有关如何使用代理 URI 配置的详细信息,请参阅: 代理配置 URI
activemq-admin
从 ActiveMQ Classic 5.x 开始,上述独立实用程序已合并到 activemq-admin 命令中 (除了 activemq 脚本),如下所示
- activemq-admin stop
- activemq-admin list
- activemq-admin query
- activemq-admin bstat
- activemq-admin browse
每个任务的语法保持如下所述。 还要注意,activemq 命令仍然受支持。
stop 任务
任务名称 | stop |
任务用法 | activemq-admin stop [选项] [代理名称] |
描述 | 脚本停止运行的 ActiveMQ 代理。 此任务要求启用 JMX。 |
选项
选项名称 | 语法 | 示例 | 描述 |
---|---|---|---|
停止全部选项 | –all | stop –all | 停止指定 JMX 上下文中注册的所有代理 |
JMX URL 选项 | –jmxurl |
–jmxurl service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi | 更改要连接的 JMX 服务 URL。 默认情况下,它连接到:service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi |
JMX 身份验证选项 | –jmxuser 用户 –jmxpassword 密码 | –jmxuser smx –jmxpassword smx | 对于需要 JMX 客户端的用户名/密码身份验证的情况。 默认情况下未设置。 |
系统定义选项 | -D |
-Dactivemq.home=c:/ActiveMQ | 设置系统属性。 例如,Systems.getProperty(“activemq.home”); 将返回 c:/ActiveMQ |
帮助选项 | -h 或 -? 或 –help | –help | 显示 stop 脚本的帮助消息。 |
版本选项 | –version | activemq –version | 显示 activemq 版本信息。 |
示例
示例 | 描述 |
---|---|
activemq-admin stop | 停止默认 JMX 上下文中唯一运行的代理。 它假定只有一个代理在运行。 |
activemq-admin stop –jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi –all | 停止指定 JMX 上下文中运行的所有代理。 |
activemq-admin stop localhost | 停止默认 JMX 上下文中名为 “localhost” 的代理。 |
activemq-admin stop localhost remotehost | 停止默认 JMX 上下文中名为 “localhost” 和 “remotehost” 的代理。 |
list 任务
任务名称 | list |
任务用法 | activemq-admin list [选项] |
描述 | 脚本列出指定 JMX 上下文中运行的所有代理的名称。 此任务要求启用 JMX。 |
选项
选项名称 | 语法 | 示例 | 描述 |
---|---|---|---|
JMX URL 选项 | –jmxurl |
–jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi | 更改要连接的 JMX 服务 URL。 默认情况下,它连接到:service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi |
JMX 身份验证选项 | –jmxuser 用户 –jmxpassword 密码 | –jmxuser smx –jmxpassword smx | 对于需要 JMX 客户端的用户名/密码身份验证的情况。 默认情况下未设置。 |
系统定义选项 | -D |
-Dactivemq.home=c:/ActiveMQ | 设置系统属性。 例如,Systems.getProperty(“activemq.home”); 将返回 c:/ActiveMQ |
帮助选项 | -h 或 -? 或 –help | –help | 显示 list 脚本的帮助消息。 |
版本选项 | –version | activemq –version | 显示 activemq 版本信息。 |
示例
示例 | 描述 |
---|---|
activemq-admin list | 列出默认 JMX 上下文中运行的所有代理的名称。 |
activemq-admin list –jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi | 列出指定 JMX 上下文中运行的所有代理的名称。 |
query 任务
任务名称 | query |
任务用法 | activemq-admin query [选项] |
描述 | 脚本查询指定的 JMX 上下文以获取 MBean 属性和信息。 此脚本要求启用 JMX。 |
选项
选项名称 | 语法 | 示例 | 描述 |
---|---|---|---|
预定义查询选项 | -Q<类型>=<名称> | -QTopic=TEST.FOO, -QBroker=*host | 预定义对象名称查询选项,根据其类型和选定标识符查询特定类型的 MBean 对象。 有关详细信息,请参阅下面的 MBean 参考表。 |
-xQ<类型>=<名称> | -xQTopic=ActiveMQ.Advisory., -xQNetworkConnector= | 预定义对象名称查询选项,从搜索结果中删除与查询匹配的所有 MBean。 有关详细信息,请参阅下面的 MBean 参考表。 | |
对象名称查询选项 | –objname <对象名称查询> | –objname Type=Connect,BrokerName=local* | 基于 JMX 对象名称格式的松散查询选项,允许您根据其对象名称信息过滤 MBean。 有关详细信息,请参阅下面的 MBean 参考表。 |
–xobjname <对象名称查询> | –xobjname Type=Topic,Destination=ActiveMQ.Advisory.* | 从搜索结果中删除与查询匹配的所有 MBean 的对象名称查询。 有关详细信息,请参阅下面的 MBean 参考表。 | |
查看选项 | –view <查看列表> | –view Type,BrokerName,Destination,EnqueueCount,DequeueCount | 允许您指定要查看的属性和对象名称信息。 如果省略视图,将显示所有属性和信息。 |
JMX URL 选项 | –jmxurl <url> | –jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi | 更改要连接的 JMX 服务 URL。 默认情况下,它连接到:service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi |
JMX 身份验证选项 | –jmxuser 用户 –jmxpassword 密码 | –jmxuser smx –jmxpassword smx | 对于需要 JMX 客户端的用户名/密码身份验证的情况。 默认情况下未设置。 |
系统定义选项 | -D<键>=<值> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性。 例如,Systems.getProperty(“activemq.home”); 将返回 c:/ActiveMQ |
帮助选项 | -h 或 -? 或 –help | –help | 显示 query 脚本的帮助消息。 |
版本选项 | –version | activemq –version | 显示 activemq 版本信息。 |
示例
示例 | 描述 |
---|---|
activemq-admin query | 显示默认 JMX 上下文中注册的所有 MBean 的所有属性和对象名称信息。 |
activemq-admin query -QTopic=TEST.FOO | 显示目标主题 “TEST.FOO” 的所有属性和对象名称信息。 |
activemq-admin query -QQueue=* | 显示所有注册队列的所有属性和对象名称信息。 |
activemq-admin query -QTopic=.FOO -xQTopic=ActiveMQ.Advisory. | 显示所有以 “.FOO” 结尾的主题的所有属性和对象名称信息,但那些也以 “ActiveMQ.Advisory.” 开头的主题除外。 |
activemq-admin query -QBroker=local???? –view Type,BrokerName,EnqueueCount,DequeueCount | 显示所有以 “local” 开头的 9 个字母代理的对象类型、代理名称、入队计数和出队计数信息。 |
activemq-admin query –objname Type=Connect,BrokerName=localhost -xQNetworkConnector=* | 显示代理 “localhost” 的所有连接和连接器的所有属性和对象名称信息,但其网络连接器除外。 |
activemq-admin query –objname Type=Connection –xobjname Type=Connection,BrokerName=localhost | 显示所有注册连接的所有属性和对象名称信息,但属于代理 “localhost” 的连接除外。 |
activemq-admin query -QQueue=???? –objname Type=Connection –xobjname BrokerName=remote* | 显示所有 4 个字母队列和连接的所有属性和对象名称信息,但属于以 “remote” 开头的代理的连接除外。 |
ActiveMQ Classic MBean 参考
MBean 类型 | 属性 / 对象名称 | 属性 | 操作 |
---|---|---|---|
代理 | type=Broker, brokerName=<代理标识符> | BrokerId, TotalEnqueueCount, TotalDequeueCount, TotalConsumerCount, TotalMessageCount, TotalConnectionsCount, TotalConsumerCount, TotalProducerCount, MemoryLimit, MemoryPercentUsage, StoreLimit, StorePercentUsage | start, stop, terminateJVM, resetStatistics, gc |
目标 | type=Broker, brokerName=<代理名称>, destinationType=Queue|Topic, destinationName=<名称> | Average, EnqueueTime, ConsumerCount, DequeueCount, EnqueueCount, ExpiredCount, InFlightCount, MemoryLimit, MemoryPercentUsage, Name, QueueSize (仅队列) | browseMessages, gc, purge, resetStatistics |
网络连接器 | type=Broker, brokerName==<代理名称>, connector=networkConnectors, networkConnectorName==<连接器标识符> | Name, Duplex, DynamicOnly, BridgeTempDestinations, ConduitSubscriptions, DecreaseNetworkConsumerPriority, DispatchAsync, DynamicOnly, NetworkTTL, Password, PrefetchSize | start, stop |
连接器 | type=Broker, brokerName=<代理名称>, connector=clientConnectors, ConnectorName==<连接器标识符> | StatisticsEnabled | start, stop, resetStatistics, enableStatistics, disableStatistics, connectionCount |
连接 | type=Broker, brokerName=<代理名称>, connectionViewType=clientId, connectionName==<连接标识符> | DispatchQueueSize, Active, Blocked, Connected, Slow, Consumers, Producers, RemoteAddress, UserName, ClientId | start, stop, resetStatistics |
持久性适配器 | type=Broker, brokerName=<代理名称>, Service=PersistenceAdapter, InstanceName==<适配器标识符> | Name, Size, Data, Transactions | |
健康状况 | type=Broker, brokerName=<代理名称>, Service=Health | CurrentStatus | health |
bstat 任务
任务名称 | bstat |
任务用法 | activemq-admin bstat [代理名称] |
描述 | 预定义查询脚本,显示有关代理及其组件的有用统计信息。 |
示例
示例 | 描述 |
---|---|
activemq-admin bstat | 显示默认 JMX 上下文中注册的所有代理的有用统计信息。 |
activemq-admin bstat localhost | 显示注册代理 “localhost” 的有用统计信息。 |
browse 任务
任务名称 | browse |
任务用法 | activemq-admin browse –amqurl <代理 URL> [选项] <目标> 或 java -jar run.jar browse –amqurl <代理 URL> [选项] <目标> |
描述 | 脚本浏览选定目标的消息。 由于代理配置和系统资源的限制,browse 操作可能无法返回所有消息。 |
选项
选项名称 | 语法 | 示例 | 描述 |
---|---|---|---|
代理 URL 选项 | –amqurl <url> | –amqurl tcp://127.0.0.1:61616 | 指定要连接的代理 URL。 |
消息选择器选项 | –msgsel “<msgsel1,msgsel2,…>” | –msgsel “JMSMessageID=’*:10’,JMSPriority>5” | 允许您过滤要查看的特定消息。将完整的选择器条件放在双引号“ ”中。您可以通过将字符串消息属性括在“ ”中来使用通配符查询。除了使用通配符查询来过滤字符串属性外,其他查询遵循消息选择器格式。 |
组视图选项 | -V[header | custom | body] | -Vheader, -Vcustom, -Vbody | 允许您指定要查看的特定消息属性组。标题视图显示所有标准 JMS 消息头。自定义视图显示添加到每个 JMS 消息中的所有自定义字段。正文视图显示 JMS 消息的正文。 |
特定视图选项 | –view <attr1>,[header:|custom:]<attr2>,… | –view JMSMessageID=’*:10’,custom:MyCustomField | 允许您专门选择特定消息属性。它允许您从 JMS 和自定义头中选择特定属性。您可以添加标签 header: 和 custom: 来明确指定属性属于哪个位置。有关详细信息,请参阅下面的消息头表。 |
系统定义选项 | -D<键>=<值> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性。 例如,Systems.getProperty(“activemq.home”); 将返回 c:/ActiveMQ |
帮助选项 | -h 或 -? 或 –help | –help | 显示浏览脚本的帮助消息。 |
版本选项 | –version | activemq –version | 显示 activemq 版本信息。 |
示例
示例 | 描述 |
---|---|
activemq-admin browse –amqurl tcp://127.0.0.1:61616 TEST.FOO | 打印队列“TEST.FOO”中消息的 JMS 消息头、自定义消息头和消息正文。 |
activemq-admin browse –amqurl tcp://127.0.0.1:61616 -Vheader,body TEST.FOO | 打印队列“TEST.FOO”中消息的 JMS 消息头和消息正文。 |
activemq-admin browse –amqurl tcp://127.0.0.1:61616 -Vheader –view custom:MyCustomField TEST.FOO TEST.BAR | 打印队列“TEST.FOO”和“TEST.BAR”中消息的所有 JMS 消息头和自定义字段“MyCustomField”。 |
activemq-admin browse –amqurl tcp://127.0.0.1:61616 –msgsel “JMSMessageID=’*:10’,JMSPriority>5” TEST.FOO | 打印队列“TEST.FOO”中所有属性,这些属性的 JMSMessageID 与通配符查询 *:10 匹配,并且 JMSPriority 大于 5。 |
JMS 消息头参考
头名称 | 头类型 |
---|---|
JMSCorrelation ID | 字符串 |
JMSDelivery Mode | int (1-非持久,2-持久) |
JMSDestination | javax.jms.Destination |
JMSExpiration | long |
JMSMessageID | 字符串 |
JMSPriority | int |
JMSRedelivered | 布尔值 |
JMSReplyTo | javax.jms.Destination |
JMSTimestamp | long |
JMSType | 字符串 |
清除任务
任务名称 | 清除 |
任务用法 | activemq-admin purge [purge-options] |
描述 | 删除与消息选择器匹配的选择目标的消息。 |
选项
选项名称 | 语法 | 示例 | 描述 |
---|---|---|---|
JMX URL 选项 | –jmxurl <url> | –jmxurl service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi | 更改要连接的 JMX 服务 URL。 默认情况下,它连接到:service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi |
JMX 身份验证选项 | –jmxuser 用户 –jmxpassword 密码 | –jmxuser smx –jmxpassword smx | 对于需要 JMX 客户端的用户名/密码身份验证的情况。 默认情况下未设置。 |
消息选择器选项 | –msgsel “<msgsel1,msgsel2,…>” | –msgsel “JMSMessageID=’*:10’,JMSPriority>5” | 允许您过滤要查看的特定消息。将完整的选择器条件放在双引号“ ”中。您可以通过将字符串消息属性括在“ ”中来使用通配符查询。除了使用通配符查询来过滤字符串属性外,其他查询遵循消息选择器格式。 |
系统定义选项 | -D<键>=<值> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性。 例如,Systems.getProperty(“activemq.home”); 将返回 c:/ActiveMQ |
帮助选项 | -h 或 -? 或 –help | –help | 显示浏览脚本的帮助消息。 |
版本选项 | –version | activemq –version | 显示 activemq 版本信息。 |
示例
示例 | 描述 |
activemq-admin purge FOO.BAR | 删除队列 FOO.BAR 中的所有消息。 |
activemq-admin purge –msgsel “JMSMessageID=’*:10’,JMSPriority>5” FOO.* | 删除与 FOO.* 匹配的目标中的所有消息,这些消息的 JMSMessageID 在“”,匹配通配符 *:10 的头字段,并且在“”,队列 FOO.BAR 中的 JMSPriority 字段 > 5。要使用通配符查询,字段必须是字符串,并且查询必须用 '' 括起来。 |
dstat 任务
任务名称 | dstat |
任务用法 | activemq-admin dstat [destination type] |
描述 | 预定义查询脚本,显示有关代理上的目标的有用统计信息。 |
示例
示例 | 描述 |
---|---|
activemq-admin dstat | 在默认 JMX 上下文中显示代理上所有目标的有用统计信息。 |
activemq-admin dstat topics | 显示当前存在于代理上的主题的有用统计信息。 |