Я подключаюсь к Tomcat через JMX. Я написал простой клиент JMX для подключения к tomcat и чтения различных атрибутов JMX MBean для мониторинга tomcat. Моя проблема в том, что я хотел бы знать, какой порт прослушивает HTTP-коннектор Tomcat. Есть ли способ получить эту информацию через JMX Mbean - без чтения файла server.xml tomcat. Но чтобы получить это через некоторые атрибуты одного MBean?
понять порт HTTP-коннектора Tomcat из JMX MBeans
Ответы (2)
MBean называется что-то вроде Catalina:type=ThreadPool,name=http-8080. Как видите, порт разъема указан в названии.
person
Kees de Kooter
schedule
17.03.2009
Если tomcat запущен не на 8080, а на 9090 - тогда имя bean-компонента станет Catalina: type = ThreadPool, name = http-9090. В этом случае мне нужно знать, на каком порту работает http-коннектор.
- person Shamik; 17.03.2009
В этом случае он работает на порту 9090. Имя пула потоков отражает порт коннектора http.
- person Kees de Kooter; 17.03.2009
Вероятно, один глупый вопрос - но мой вопрос - есть ли способ узнать имена bean-компонентов программно, которые предоставляет tomcat?
- person Shamik; 18.03.2009
Вы можете использовать утилиту JConsole для проверки всех MBean-компонентов работающего приложения.
- person Kees de Kooter; 18.03.2009
Вы можете получить список MBean-компонентов, соответствующих различным критериям, используя метод
MBeanServerConnection.queryNames(). Например, queryNames(new ObjectName("Catalina:type=ThreadPool,*", null)) должен возвращать список всех ThreadPool MBean.
- person Matt Solnit; 16.12.2009
Для каждого коннектора есть выделенный MBean. Вы можете использовать все имена объектов MBean, запросив *:type=Connector,*. Разумеется, разъемов может быть несколько. Эти MBean-компоненты имеют атрибут port, из которого вы можете запросить номер порта.
Если вы используете jmx4perl, вы можете легко запросить эти атрибуты с помощью
jmx4perl http://localhost:8080/jolokia read *:type=Connector,* port
{
"Catalina:port=8009,type=Connector" => {
port => 8009
},
"Catalina:port=8080,type=Connector" => {
port => 8080
}
}
person
Roland Huß
schedule
11.03.2011