命令行工具
命令行工具
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.* |
目标匹配FOO.*且JMSMessageID匹配*.10,且JMSPriority大于5的消息,使用通配符,字段必须是字符串,且包含在单引号中。 |