当前的脚本包含了所有管理activemq的功能。
activemq - 运行消息中间件
(看)
在5.4.1之前的版本,一些超过了控制服务本身的管理功能被包含在"activemq-admin"脚本当中。
这个脚本现在仍有部分提供给了windows用户使用
- 管理消息中间件
在5.0之前的版本这些管理消息中间件的脚本(activemq-admin)被分割为多个脚本,如:
shutdown - 停止消息中间件
list - 列出所有在指定的JMX上下文内的正在运行的消息中间件
query - 查询统计和信息
bstat - predefined query that displays useful broker statistics
browse - 浏览指定队列的信息
purge - 删除与消息选择器匹配的消息
activemq脚本
注:这个脚本只能用在windows平台以及5.4.0版本之前的unix平台。5.4.0及以后的版本activemq提供了一个加强版的
脚本名称 | activemq.bat, activemq |
使用方式 | activemq [options] [config] or java -jar run.jar start [options] [config] |
描述 | 用于启动activemq消息中间件的脚本,该脚本即可以通过指定一个配置文件也可以通过URI配置的方式来运行 |
选项:
选项名称 | 语法 | 例子 | 描述 |
系统定义的选项 | -D<key>=<value> | -Dactivemq.home=c:/ActiveMQ | 设置系统属性。比如这个例子中当在代码中调用Systems.getProperty("activemq.home")时会返回c:/ActiveMQ |
帮助选项 | -h or -? or --help | activemq --help | 显示activemq脚本的帮助信息 |
版本信息选项 | --version | activemq --version | 显示activemq的版本信息 |
例子:
例子 | 描述 |
activemq | 使用默认的'xbena:activemq.xml‘配置文件启动消息中间件 |
activemq xbean:myconfig.xml | 使用在classpath下的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文件作为配置文件启动消息中间件。 |
activemq broker:(tcp://localhost:61616,tcp://localhost:5000)?useJmx=true | 使用url的方式来启动消息中间件,这个例子中启动了两个传输通道(分别在61616和5000端口上监听)并且启用了jmx特性。 |
activemq broker:(tcp://localhost:61616,network:tcp://localhost:5000)?persistent=false | Runs a broker with 1 transport connector and 1 network connector with persistence disabled. 使用url的方式来启动消息中间件,这个例子中启动了1个传输通道(在61616端口上监听)和一个网络通道(在5000端口监听)并且明确禁用了持久化特性。 |
(译者注:在5.11.1及后的版本中上面的这些例子在activemq后要增加一个start参数,如activemq start xbean:myconfig.xml,并且要特别注意url参数不能有空格,在官方提供的原文档中多个地方中间有空格导致执行不成功)
更多有关配置和使用broker URI的信息可参看:
activemq-admin
ActiveMQ 5.x版本以后,上面那些单独的脚本都被并入到activemq-admin当中(除了active脚本外),如下:
activemq-admin stop
activemq-admin list
activemq-admin query
activemq-admin bstat
activemq-admin browse
每个任务的语法如下所述。要注意的是activemq这个命令还是保留的。
stop task
任务名称 | stop |
使用方法 | activemq-admin stop [options] [broker names] |
描述 | 用来停止一个正在运行的消息中间件。这个任务能执行的前提是在启动消息中间件时开启了jmx特性 |
选项
选项名称 | 语法 | 例子 | 描述 |
停止所有选项 | --all | stop --all | 停止所有被注册在指定的jmx上下文内的消息中间件 |
JMX URL | --jmxurl <url> | --jmxurl service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi | |
JMX Authentication | --jmxuser user --jmxpassword password | --jmxuser smx --jmxpassword smx | |
System Define | -D<key>=<value> | -Dactivemq.home=c:/ActiveMQ | |
Help | -h or -? or --help | --help | |
Version | --version | activemq --version |
例子
例子 | 描述 |
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 task
任务名称 | list |
使用方法 | activemq-admin list [options] |
描述 | 列出在指定的jmx上下文内运行的所有正在运行的消息中间件的名字。这个任务能执行的前提是在启动消息中间件时开启了jmx特性 |
选项
选项名称 | 语法 | 例子 | 描述 |
JMX URL | --jmxurl <url> | --jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi | |
JMX Authentication | --jmxuser user --jmxpassword password | --jmxuser smx --jmxpassword smx | |
System Define | -D<key>=<value> | -Dactivemq.home=c:/ActiveMQ | |
Help | -h or -? or --help | --help | |
Version | --version | activemq --version |
例子
例子 | 描述 |
activemq-admin list | 列出默认的jmx上下文内所有正在运行的消息中间件的名称 |
activemq-admin list --jmxurl service:jmx:rmi:///jndi/rmi://remotehost:1099/jmxrmi | 列出指定的jmx上下文内所有正在运行的消息中间件的名称 |
query task
任务名称 | query |
使用方法 | activemq-admin query [options] |
描述 | Script to query the specified JMX context for mbean attributes and information。这个任务能执行的前提是在启动消息中间件时开启了jmx特性 |
选项
选项名称 | 语法 | 例子 | 描述 |
Predefined Query Option | -Q<type>=<name> | -QTopic=TEST.FOO, -QBroker=*host | 预定义对象名称查询选项,查询基于其类型和选择特定的MBean对象类型标识符。具体请参考下面给出的mbean参考表格。 |
-xQ<type>=<name> | -xQTopic=ActiveMQ.Advisory.*, -xQNetworkConnector=* | 预定义对象名称查询选项,不显示所有匹配的查询的搜索结果MBeans。具体请参考下面给出的mbean参考表格。 | |
Object Name Query Option | --objname <object name query> | --objname Type=Connect,BrokerName=local* | 格式不严格的基于JMX对象名称格式的查询选项,它可以让你过滤基于对象名称信息MBean。具体请参考下面给出的mbean参考表格。 |
--xobjname <object name query> | --xobjname Type=Topic,Destination=ActiveMQ.Advisory.* | 对象名称查询,在搜索结果中不显示所有匹配查询选项的mbean。具体请参考下面给出的mbean参考表格。 | |
View Option | --view <view list> | --view Type,BrokerName,Destination,EnqueueCount,DequeueCount | 让你可以指定对象和属性名称来查看信息。如果view后没有选项则会显示所有的信息。 |
例子
例子 | 描述 |
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 | 显示所有消息中间件的名称为9个字母的并且以'local'开头的对象类型,中间件名称,入队列数据的数目,出队列数据的数目信息。 |
activemq-admin query --objname Type=Connect,BrokerName=localhost -xQNetworkConnector=* | 显示名字为'localhost'的消息中间件的所有的连接和连接器的所有属性和对象名称(除了网络连接器)。 |
activemq-admin query --objname Type=Connection --xobjname Type=Connection,BrokerName=localhost | 显示所有已注册的连接的所有属性和对象名称信息(除了那些属于名字为'localhost’的broker的)。 |
activemq-admin query -QQueue=???? --objname Type=Connection --xobjname BrokerName=remote* | 显示所有名字为四个字母的队列和连接的所有的属性和对象名称的信息(除了那些属于以'remote'开头的消息中间件的)。 |
ActiveMQ MBean 参考
MBean类型 | 属性/对象名 | 属性 |
Broker |
|
|
Destination |
|
|
NetworkConnector |
| |
Connector |
|
|
Connection |
|
|
bstat task
任务名称 | bstat |
使用方法 | activemq-admin bstat [broker name] |
描述 | 显示对消息中间件及它的组件有用的统计的预定义脚本。 |
例子
例子 | 描述 |
activemq-admin bstat | 显示默认的jmx上下文中所有注册的消息中间件的有用的统计信息。 |
activemq-admin bstat localhost | 显示注册的名字叫'localhost'的消息中间件的有用的统计信息 |
browse task
任务名称 | browse |
使用方法 | activemq-admin browse --amqurl <broker url> [options] <destinations> or java -jar run.jar browse --amqurl <broker url> [options] <destinations> |
描述 | 用来浏览选中的目的消息的脚本 |
选项
选项名称 | 表达式 | 例子 | 描述 |
Broker URL | --amqurl <url> | --amqurl tcp://localhost:61616 | 指定要连接的broker URL |
消息选择器 | --msgsel "<msgsel1,msgsel2,...>" | --msgsel "JMSMessageID='*:10',JMSPriority>5" | Allows you to filter the specific messages to view. Place the entire selector criteria in double quotes " ". You can use wildcard queries by enclosing the string message property in ' '. Other than using wildcard queries to filter string properties, other queries follows the message selector format. |
视图组 | -V[header | custom | body] | -Vheader, -Vcustom, -Vbody | Let's you specify a specific group of message attributes to view. The header view shows all the standard JMS message headers. The custom view shows all the custom fields added to each JMS message. The body view shows the message body of the JMS message. |
指定的视图 | --view <attr1>,[header:|custom:]<attr2>,... | --view JMSMessageID='*:10',custom:MyCustomField | Let's you specifically select a specific message attribute. It allows you to select specific attributes from the JMS and custom headers. You could add the tags header: and custom: to explicitly specify where the attribute belongs to. Refer to the message header table below for details. |
例子
例子 | 描述 |
activemq-admin browse --amqurl tcp://localhost:61616 TEST.FOO | 打印所有在名字叫'TEST.FOO'的队列里的消息的JMS消息头,自定义消息头和消息体 |
activemq-admin browse --amqurl tcp://localhost:61616 -Vheader,body TEST.FOO | 打印所有在名字叫'TEST.FOO'的队列里的消息的JMS消息头和消息体 |
activemq-admin browse --amqurl tcp://localhost:61616 -Vheader --view custom:MyCustomField TEST.FOO TEST.BAR | 打印所有在名字叫'TEST.FOO'和'TEST.BAR'的队列里的消息的JMS消息头和自定义字段'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-Non-Persistent, 2-Persistent) |
JMSDestination | javax.jms.Destination |
JMSExpiration | long |
JMSMessageID | String |
JMSPriority | int |
JMSRedelivered | boolean |
JMSReplyTo | javax.jms.Destination |
JMSTimestamp | long |
JMSType | String |
purge task
任务名称 | purge |
使用方法 | activemq-admin purge [purge-options] <destinations> |
描述 | 删除匹配消息选择器的所有目的消息 |
选项
选项名称 | 表达式 | 例子 | 描述 |
JMX URL | --jmxurl <url> | --jmxurl service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi | Change the JMX service url to connect to. By default it connects to: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi |
JMX Authentication | --jmxuser user --jmxpassword password | --jmxuser smx --jmxpassword smx | For cases where username/password based authentication of the JMX client is required. Not set by default |
消息选择器 | --msgsel "<msgsel1,msgsel2,...>" | --msgsel "JMSMessageID='*:10',JMSPriority>5" | Allows you to filter the specific messages to view. Place the entire selector criteria in double quotes " ". You can use wildcard queries by enclosing the string message property in ' '. Other than using wildcard queries to filter string properties, other queries follows the message selector format. |
例子
例子 | 描述 |
activemq-admin purge FOO.BAR | 删除所有在队列'FOO.BAR'里的消息 |
activemq-admin purge --msgsel "JMSMessageID='*:10',JMSPriority>5" FOO.* | Delete all the messages in the destinations that matches FOO.* and has a JMSMessageID in", the header field that matches the wildcard *:10, and has a JMSPriority field > 5 in the", queue FOO.BAR To use wildcard queries, the field must be a string and the query enclosed in '' |
dstat task
任务名称 | dstat |
使用方法 | activemq-admin dstat [destination type] |
描述 | 用来显示对于一个消息中间件有用的统计信息的脚本 |
例子
例子 | 描述 |
activemq-admin dstat | 显示在默认的jmx上下文中所有的在消息中间件中的目的消息的有用统计信息 |
activemq-admin dstat topics | 显示所有在消息中间件中的主题的有用的统计信息 |
原文链接