вызвать операцию jmx в локальном запущенном процессе

У меня есть процесс Java на сервере Linux, который работает с этой опцией: -Dcom.sun.management.jmxremote

Поэтому я не могу просто подключиться к этому процессу через jconsole, работающую на моем локальном компьютере (потому что ни порт, ни параметры -Dcom.sun.management.jmxremote.ssl=false не настроены).

Но все же, как я могу подключиться к приложению и выполнить какие-то операции над некоторыми его MBean-компонентами? Это возможно? У меня есть ssh-доступ к серверу, и я смогу запустить его «локально» на сервере (но, к сожалению, без изменения параметров)


person javagirl    schedule 29.04.2013    source источник


Ответы (1)


Согласно документации JMX - Опция Dcom.sun.management.jmxremote

Enables the JMX remote agent and local monitoring via JMX connector published on a private
interface used by jconsole. The jconsole tool can use this connector if it is executed by 
the same user ID as the user ID that started the agent. No password or access files are 
checked for requests coming via this connector.

Название немного неудачное, потому что на самом деле оно позволяет только локальный мониторинг.

Поскольку вы не можете изменить параметры, но можете получить доступ к серверу через SSH, единственным вариантом является использование переадресации X-сервера (ssh -X ...) и запуск jconsole (или еще лучше jvisualvm, который имеет специальные оптимизации для удаленной работы).

person JB-    schedule 10.05.2013