命令行工具
命令行工具
n activemq——运行activemq代理
n activemq-admin——管理代理的实例
在5.0之前activemq-admin被分成多个脚本,例如:
n shutdown——关闭activemq代理
n list——列出所有在指定JMX上下文中运行的代理
n query——查询JMX上下文中的代理统计和信息。
n bstat——预定义查询,显示有用的代理统计信息。
n browse——浏览指定队列中的消息。
n purge——删除所选目标的消息。
activeMQ脚本
这个脚本只对windows平台有效,unix平台上只对5.4.0之前的版本有效,之后的版本使用增强的Unix外壳脚本。
脚本名称 | activemq.bat,activemq |
用法 | activemq [options] [config] or java –jar run.jar start [options] [config] |
描述 | 通过指定代理配置文件或代理URI配置来运行activemq代理 |
选项
选项名称 | 语法 | 示例 | 描述 |
系统定义的选项 | -D <key>=<value> | -D activemq.home=c:/ActiveMQ | 设置系统属性例如:System.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作为配置文件来运行代理 |
activemq xbean:file:C:/ActiveMQ/conf/broker2.xml | 使用两个端口连接器来运行代理 |
activemq broker:(tep://localhost:61616,tcp://localhost:5000)?persistent=false | 使用一个端口连接器,一个网络连接器,关闭持续性来运行一个代理 |
activemq-admin
在ActiveMQ 5.X版本中,上面的独立工具一并被整合到activemq-admin这个命令中了,如下所示:
n activemq-admin stop
n activemq-admin list
n activemq-admin query
n activemq-admin bstat
n activemq-admin browse
每一个命令的作用的描述如下所示,记住activemq命令也可以使用
停止任务
脚本名称 | stop |
用法 | activemq-admin stop [options] [broker names] |
描述 | 停止正在运行的activemq代理,这个命令需要启用JMX。 |
选项
选项名称 | 语法 | 示例 | 描述 |
停止所有选项 | --all | stop –all | 停止所有指定JMX上下文中的已注册代理service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi |
JMX URL选项 | --jmxurl <url> | --jmxurl service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi | 更改连接到JMX服务的url。缺省为: |
JMX认证选项 | --jmxuser user --jmxpassword password | --jmxusersmx –jmxpassword smx | 基于认证的JMX客户端需要用户名和口令 |
系统定义选项 | -D<key>=<value> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性,例如:System.getProperty(“activemq.home”)将会返回c:/ActiveMQ |
帮助选项 | -h、-?、--help
| --help | 显式浏览的帮助信息 |
版本信息 | --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 |
用法 | activemq-admin list [options] |
描述 | 停止正在运行的activemq代理列表(在指定的JMX上下文中),这个命令需要启用JMX。 |
选项
选项名称 | 语法 | 示例 | 描述 |
JMX URL选项 | --jmxurl <url> | --jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi | 更改JMX连接的服务URL。缺省情况向连接到service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi |
JMX认证选项 | --jmxuser user --jmxpassword password | --jmxuser smx –jmxpassword | 基于JMX客户认证的情况下:用户名和口令是必须的。缺省情况下没有设置。 |
系统定义选项 | -D <key>=<value> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性,例如:Systems.getProperty(“activemq.home”);将会返回c:/ActiveMQ |
help选项 | -h、-?、--help | --help | 显示脚本列表的帮助信息 |
版本选项 | --version | activemq –version | 显示activemq版本信息。 |
示例
示例 | 描述 |
activemq-admin list | 列出所有在缺省JMX上下文中的代理 |
activemq-admin list --jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi | 列出在指定JMX上下文中所有运行的代理 |
查询任务
脚本名称 | query |
用法 | activemq-admin query [options] |
描述 | 查询指定JMX上下文中mbean属性和信息。这个脚本需要启动JMX。 |
选项
选项名称 | 语法 | 示例 | 描述 |
预定的查询选项 | -Q<type>-<name> | --QTopic=test.FOO,-Qbroker=*host | 指定查询选项可以根据他的类型和选择标示符来查询指定mbean对象的类型。 |
| -xQ<teyp>=<name> | -xQTopic=ActiveMQ.Advisory.*, -xQNetworkConnector=* | 删除所有满足满足查询条件的mbean |
对象名查询 | --objname<object name query> | --objname Type=Connect, Brokername=local* | 查询基于JMX对象名格式,这让你可以得到除去对象名信息的mbeans。 |
| -xobjname <object name query> | --objname Type=Topic, Destination=ActiveMQ.Advisory.* | 删除所有已匹配的查询结果。详细信息参考下面的表。 |
查看选项 | --view <view list> | --view Type,BrokerName, Destination, EnqueueCount, DequeueCount | 让你指定属性和对象名来查看,如果view被省略掉,所有的属性和信息都将被显示出来。 |
JMX URL选项 | --jmxurl <url> | --jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi | 更改连接到JMX服务url。缺省情况下连接到service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi |
JMX 认证选项 | --jmxuser user --jmxpassword password | --jmxuser smx –jmxpassword smx | 基于认证JMX客户的用户名和密码是必须的,缺省上是没有的。 |
系统定义选项 | -D <key>=<value> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性,例如:System.getProperty(“activemq.home”);将返回c:/ActiveMQ |
帮助选项 | -h、-?、--help | --help | 显示查询脚本的帮助信息 |
Version | --version | activemq –version | 显示activemq版本信息 |
示例
示例 | 描述 |
activemq-admin query | 显示所有注册在缺省JMX上下文内的mbeans的属性和对象名。 |
activemq-admin query –QTopic=Test.FOO | 显示目标位Test.FOO的所有属性和对象名 |
activemq-admin query –QQueue=* | 显示所有注册队列的属性和对象名 |
activemq-admin query –QTopic=*.FOO –xQTopic=ActiveMQ.Advisory.* | 显示以.FOO结尾,并除去以ActiveMQ.Advisory.开始的主题中的所有属性和对象名。 |
active-admin query –QBroker=local???? –view Type, BrokerName, EnqueueCount, DequeueCount | 显示以local开始的九个字母组成的代理中的对象类型、代理名、入列数和出列数 |
activemq-admin query –-objname Type=connect,BrokerName=localhost –xQNetworkConnector=* | 显示所有连接到localhost代理的属性和对象名,并排除其中的网络连接。 |
activemq-admin query –-objname Type=connect –xobjname Type=Connection,BrokerName=localhost | 除去属于localhost的代理,显示其他所有连接器的属性和对象名。 |
activemq-admin query –objname Type=Connection –xobjname Type=Connection, BrokerName=remote* | 队列名为四个字符,并且代理不是remote开始的代理的所有的属性和对象名。 |
activeMQ MBean参考
Mbean类型 | 属性/对象名 | 属性 |
代理 | n Type=Broker n BrokerName=<broker identifier> | n BrokerId n TotalEnqueueCount n TotalDequeueCount n TotalConsumerCount n TotalMessages n TotalMessagesCached n MemoryLimit n MemoryPercentageUsed |
目标 | n Type=Queue|Topic n Destination=<destination identifier> n BrokerName=<name of broker> | n EnqueueCount n DequeueCount n ConsumerCount n Messages n MessagesCached |
网络连接器 | n Type=NetworkConnector n BrokerName=<connector identiier> |
|
连接器 | n Type=Connector n ConnectorName=<connector identifier> n BrokerName=<name of broker> | n EnqueueCount n DequeueCount |
连接 | n Type=Connector n ConnectorName=<connector identifier> n BrokerName=<name of broker> | n EnqueueCount n DequeueCount n DispatchQueueSize n Active n Blocked n Connected n Slow |
bstat任务
命令名 | bstat |
用法 | activemq-admin bstat [broker name] |
描述 | 显示相关代理和组件的一些有用的统计信息 |
示例
示例 | 描述 |
activemq-admin bstat | 显示所有注册在缺省JMX上下文内的统计信息。 |
activemq-admin bstat localhost | 显示注册在localhost中的代理的统计信息。 |
浏览任务
命令名 | browse |
用法 | activemq-admin browse –amqurl <broker url> [options] <destinations> 或者java –jar run.jar browse –amqurl <broker url> [options] <destinations> |
描述 | 浏览选定目标的信息 |
选项
选项名称 | 语法 | 示例 | 描述 |
代理URL选项 | --amqurl <url> | --amqurl tcp://localhost:61616 | 指定连接到代理的URL。 |
消息选择器选项 | --msgsel “<msgsel1,msgsel2,…>” | --msgsel “JMSMessageID=’*:10’, JMSPriority>5” | 运行你过滤要看的消息。把整个选择条件放置在双引号内,可以使用通配符,通配符应该放置在单引号内。否则通配符查询来过滤字符串属性,其他查询则按照消息选择器进行查询。 |
组查看选项 | -V[header |custom|body] | -Vheader,-Vcustom,-Vbody | 可以让你指定一个特定的消息属性组进行查看,header视图显示所有标准的JMS消息头,custom显示所有增加到每一个JMS消息中的自定义字段。body视图显示JMS消息的内容。 |
特定视图选项 | --view <attr1>,[headerKcustom:] <attr2>,… | --view JMSMessageID=’*:10’, custom:MyCustomField | 让你明确的选择一个特定的消息属性。它允许你从JMS和自定义header中来选择指定的属性。你可以增加标记:“header:”和”custom:”来显式的指定属性的归属。详细的内容参考下面的消息头部表。 |
系统定义选项 | -D<key>=<value> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性,例如:System.getProperty(“activemq.home”)将会返回c:/ActiveMQ |
帮助选项 | -h、-?、--help
| --help | 显式浏览的帮助信息 |
版本信息 | --version | activemq –version | 显示activemq的版本信息。 |
示例
示例 | 描述 |
activemq-admin browse –amqurl tcp://localhost:61616 TEST.FOO | 打印所有在队列‘TEST.FOO’中的JMS消息头,自定义消息头和消息内容 |
active-admin browse –amqurl tcp://localhost:61616 –Vheader,body TEST.FOO | 打印在队列TEST.FOO中所有消息的头部和消息内容 |
active-admin browse –amqurl tcp://localhost:61616 –Vheader –view custom:MyCustomField TEST.FOO TEST.BAR | 在队列TEST.FOO和TEST.BAR中打印所有消息的头部和自定义MyCustomField的内容 |
activemq-admin browse –amqurl tcp://localhost:61616 –msgsel “JMSMessageID=’*:10’,JMSPriority>5” TEST.FOO | 打印队列TEST.FOO中JMSMessageID匹配*:10且JMSpriority>5的消息的所有属性。 |
JMS 消息头参考
头部名称 | 头部类型 |
JMSCorrelation ID | String |
JMSDelivery Mode | int(1:不持续,2:持续) |
JMSDestination | javax.jms.Destination |
JMSExpiration | long |
JMSMessageID | String |
JMSPriority | int |
JMSRedelivered | boolean |
JMSRelyTo | javax.jms.Destination |
JMSTimestamp | long |
JMSType | String |
清除任务
命令名 | purge |
用法 | activemq-admin purge [purge-options] <destinations> |
描述 | 根据消息选择器来删除指定目标的消息 |
选项
选项名称 | 语法 | 示例 | 描述 |
JMX URL选项 | --jmxurl <url> | --jmxurl service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi | 更改连接到JMX服务的URL,缺省值为ervice:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi |
JMX认证选项 | --jmxuser user --jmxpassword password | --jmxusersmx –jmxpassword smx | 基于认证的JMX客户端需要用户名和口令 |
消息选择器选项 | --msgsel “<msgsel1,msgsel2,…>” | --msgsel “JMSMessageID=’*:10’, JMSPriority>5” | 运行你过滤要看的消息。把整个选择条件放置在双引号内,可以使用通配符,通配符应该放置在单引号内。否则通配符查询来过滤字符串属性,其他查询则按照消息选择器进行查询 |
系统定义选项 | -D<key>=<value> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性,例如:System.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.* 原文地址:http://blog.youkuaiyun.com/fox_lht/article/details/7243039 | 目标匹配FOO.*且JMSMessageID匹配*.10,且JMSPriority大于5的消息,使用通配符,字段必须是字符串,且包含在单引号中。 |