Заданное значение клиента JMX для командной строки - PullRequest
4 голосов
/ 18 ноября 2011

Я использую Клиент командной строки JMX , чтобы иметь возможность запрашивать ActiveMQ Server. В то же время я хочу иметь возможность динамически устанавливать значения для сервера. такие как MemoryLimit .

Можно ли установить значения через клиент командной строки JMX, если да, как я могу установить предел памяти?

Вот так я смог сделать запрос.

java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 org.apache.activemq:BrokerName=defaultBroker,Destination=Testing,Type=Queue MemoryLimit

но как я могу установить ограничение памяти?

Я попробовал ниже:

java -jar cmdline-jmxclient-0.10.3.jar - localhost:1099 org.apache.activemq:BrokerName=defaultBroker,Destination=Testing,Type=Queue setMemoryLimit=300000`

и не удалось, как показано ниже.

11.11.2011 11:56:28 -0800 org.archive.jmx.Client setMemoryLimit = 300000: Операция setMemoryLimit не найдена.

1 Ответ

7 голосов
/ 18 ноября 2011

Редактировать

Я бы рекомендовал сбросить этот jmxclient и переключиться на:

http://wiki.cyclopsgroup.org/jmxterm

Это выглядитбыть поддержанным и лучше задокументированным.Я подозреваю, что он будет работать и даст вам доступ к сеттерам - если они существуют.


Если метод set существует, то должно работать следующее:

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

ЗдесьВот документы:

http://crawler.archive.org/cmdline-jmxclient/

Чтобы узнать, какие атрибуты доступны для установки и получения, я бы использовал jconsole.Если вы используете Java6 + jconsole, вы нажимаете в поле на компонент, от которого хотите получить информацию.Это должно показать вам ObjectName для использования в командной строке.Затем, если вы откроете список атрибутов, имя атрибута должно иметь соответствующий метод get.Если значение окрашено в синий цвет, то должен быть соответствующий метод set.

Например, если вы откроете папку java.lang в jconsole, вы сможете нажать 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, поэтому он не отображается как установщик.Если это так, вы должны быть в состоянии сделать:

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