JMX MBeans не видны после развертывания

СРЕДА NetBeans 6.9.1, GlassFish 3.1, METRO 2.1

Я хочу составить список доступных веб-сервисов, поэтому я запрашиваю JMX MBeanServer для *:type=WSEndpoint,*. Проблема в том, что после развертывания осталось всего около 56 Mbean-компонентов, а WSEndpoint bean-компонентов не зарегистрированы. Если я подключаюсь к JMXterm, количество MBean подскакивает до ~ 380, и все WSEndpoint bean-компоненты видны. В JConsole я не вижу folder, но после запуска JMXterm вижу.

Даже если я вызову веб-службу, компоненты MBean останутся незарегистрированными. Мониторинг METRO включен по умолчанию, я так и оставил; после развертывания отображается консольное сообщение INFO: Metro monitoring rootname successfully set to: amx:pp=/mon/server-mon[server],type=WSEndpoint,name=....

Что делает JMXterm, чтобы все MBean-компоненты были видны? Выполняет ли он какие-либо вызовы методов для MBeanServer? Есть ли какое-нибудь решение, чтобы я мог получить доступ к WSEndpoint bean-компонентам сразу после развертывания?


person Daniel Szalay    schedule 11.04.2011    source источник
comment
+1 просто за то, что я узнал о Jmxterm ;-)   -  person Joachim Sauer    schedule 11.04.2011


Ответы (2)


Вы можете инициировать регистрацию всех MBean-компонентов AMX, выполнив операцию JMX bootAMX в MBean-компоненте amx-support:type=boot-amx.

person Roland Huß    schedule 12.04.2011
comment
Спасибо, это было именно то, что я искал! Для тех, кто плохо знаком с JMX, вызов выглядит следующим образом: mBeanServer.invoke(new ObjectName("amx-support:type=boot-amx"), "bootAMX", new Object[0], new String[0]);. - person Daniel Szalay; 12.04.2011

Тем временем я нашел ответ в Руководстве пользователя METRO: 19.5. Примечания.

MBean AMX создается лениво. Поэтому, если кто-то развертывает конечную точку в GlassFish, а затем ищет mbean-компоненты Metro WSEndpoint с помощью JConsole, бывают случаи, когда mbean-компонент AMX не появляется. Чтобы активировать его, запустите asadmin GUI или CLI. Или используйте jmxterm и выполните его команду доменов.

В некоторых случаях mbean-компоненты конечной точки Metro не будут отображаться до тех пор, пока конечная точка не получит первый вызов клиента.

Мбины WSClient могут быстро появляться и исчезать, если заглушка используется только для одного вызова, а затем немедленно закрывается. Заглушка, которая использует надежный обмен сообщениями или безопасный разговор, обычно остается активной дольше, поскольку она, скорее всего, будет использоваться для нескольких вызовов.

Однако после запуска asadmin GUI или CLI это не помогло, я смог решить эту проблему, только подключившись к JVM с помощью JMXterm.

person Daniel Szalay    schedule 11.04.2011