JMX
Привет
Появилась необходимость получения некоей статистики по одному из компонентов распределенного приложения (RMI), товарищи посоветовали посмотреть в сторону JMX, мол оно для того и предназначено.
Посмотрел, похоже на правду, но есть вопрос:
есть ли возможность развернуть нечто типа rmiregistry, куда все MBean будут регистрироваться? Иными словами действительно ли необходимо писать отдельный класс для создания MBeanServerFactory, и регистрирования её с помощью
// выдрано из туториала
MBeanServer mbs = MBeanServerFactory.createMBeanServer();
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/r mi://localhost:9999/server");
JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnecto rServer(url, null, mbs);
cs.start();
Дело в том, что у меня на одном из серверов стартует сразу пачка модулей в отдельных JVM, по которым и надо смотреть статус. Если в каждом из них создавать свой сервер на отдельном порту - это будет неинтересно. Хочется чтобы одно и на всех, куда будут регистрироваться бины под разными именами.
UPD
еще такой вопрос - попробовал быстро вкрутить JMX в исеющееся приложения - http://rafb.net/p/dDOajF11.html
при запуске с ключом -Dcom.sun.management.jmxremote в jconsole видно процесс, к нему можно подключиться и посмотреть всякую всячину
а вот при прописывании в jconsole урла service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/config - то есть при попытке удаленного доступа - jconsole упорно говорить connection failed
что я делаю не так (ибо доступ будет таки удаленный и никакой другой)?
Появилась необходимость получения некоей статистики по одному из компонентов распределенного приложения (RMI), товарищи посоветовали посмотреть в сторону JMX, мол оно для того и предназначено.
Посмотрел, похоже на правду, но есть вопрос:
есть ли возможность развернуть нечто типа rmiregistry, куда все MBean будут регистрироваться? Иными словами действительно ли необходимо писать отдельный класс для создания MBeanServerFactory, и регистрирования её с помощью
// выдрано из туториала
MBeanServer mbs = MBeanServerFactory.createMBeanServer();
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/r
JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnecto
cs.start();
Дело в том, что у меня на одном из серверов стартует сразу пачка модулей в отдельных JVM, по которым и надо смотреть статус. Если в каждом из них создавать свой сервер на отдельном порту - это будет неинтересно. Хочется чтобы одно и на всех, куда будут регистрироваться бины под разными именами.
UPD
еще такой вопрос - попробовал быстро вкрутить JMX в исеющееся приложения - http://rafb.net/p/dDOajF11.html
при запуске с ключом -Dcom.sun.management.jmxremote в jconsole видно процесс, к нему можно подключиться и посмотреть всякую всячину
а вот при прописывании в jconsole урла service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/config - то есть при попытке удаленного доступа - jconsole упорно говорить connection failed
что я делаю не так (ибо доступ будет таки удаленный и никакой другой)?
