Java 命令行JMX客户端设置值

Java 命令行JMX客户端设置值,java,activemq,jmx,Java,Activemq,Jmx,我使用它来查询ActiveMQ服务器。同时,我希望能够为服务器动态设置值。例如memoryLit 是否可以通过命令行JMX客户端设置值,如果可以,如何设置内存限制 这就是我能够查询的方式 java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 org.apache.activemq:BrokerName=defaultBroker,Destination=Testing,Type=Queue MemoryLimit 但是如何设置Memor

我使用它来查询ActiveMQ服务器。同时,我希望能够为服务器动态设置值。例如memoryLit

是否可以通过命令行JMX客户端设置值,如果可以,如何设置内存限制

这就是我能够查询的方式

java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 org.apache.activemq:BrokerName=defaultBroker,Destination=Testing,Type=Queue MemoryLimit
但是如何设置MemoryLit

我尝试了以下方法:

java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 org.apache.activemq:BrokerName=defaultBroker,Destination=Testing,Type=Queue setMemoryLimit=300000`
失败,如下所示。

2011年11月18日11:56:28-0800 org.archive.jmx.Client setMemoryLimit=300000:找不到操作setMemoryLimit。

编辑

我建议删除jmxclient并切换到:

它似乎得到了支持,并得到了更好的记录。我怀疑它会起作用,让你可以访问setter——如果它们存在的话


如果set方法确实存在,则以下操作应有效:

java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 \
    org.apache.activemq:BrokerName=defaultBroker,Destination=Testing,Type=Queue \
    setMemoryLimit=...
以下是文件:

为了找出哪些属性可用于设置和获取,我将使用jconsole。如果您使用的是Java6+jconsole,那么可以单击要从中获取信息的bean。这将显示要在命令行上使用的
ObjectName
。然后,如果打开属性列表,则属性的名称应具有相应的get方法。如果值为蓝色,则应该有相应的设置方法

例如,如果打开jconsole中的
java.lang
文件夹,您应该能够单击
ClassLoading
。显示要使用的
ObjectName
java.lang:type=ClassLoading
。然后,可以执行以下操作以列出各种可用属性和操作:

java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 \
    java.lang:type=ClassLoading
你应该看看接球手和二传手。下面是获得
Verbose
属性的方法:

java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 \
    java.lang:type=ClassLoading Verbose
出于某种原因,我的版本cmdline jmxclient不知道如何执行
boolean
类型,因此它不会显示为setter。如果有,您应该能够做到:

java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 \
    java.lang:type=ClassLoading setVerbose=true

对不起,我的问题忘了提,我试过了,但没用。请看我的编辑。你确定上面有一套方法吗?你能在jconsole上完成吗?如果是这样,那么您应该能够显示正在调用的方法,然后在命令行中复制该方法的名称。这就是为什么我想通过命令行来实现这一点,这样我就可以自动化它了?我看到一个图形用户界面。如果您使用的是java6+jconsole,那么您可以打开一个bean来显示属性和操作。如果单击bean的名称,您将看到要在命令行上使用的
ObjectName
。然后,如果打开属性列表,则属性的名称应具有相应的get方法。如果值为蓝色,则应该有相应的设置方法。MemoryLit有一个属性,我只是看不到设置它的正确方法。