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

#java #glassfish #jmx #java-metro-framework

#java #glassfish #jmx #java-metro-framework

Вопрос:

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

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

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

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

Комментарии:

1. 1 просто за то, что я узнал о Jmxterm 😉

Ответ №1:

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

Комментарии:

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

Ответ №2:

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

AMX mbean создается лениво. Следовательно, если кто-то развертывает конечную точку в GlassFish, а затем ищет mbeans Metro WSEndpoint с помощью JConsole, бывают случаи, когда AMX mbean не отображается. Чтобы активировать его, запустите графический интерфейс администратора или CLI. Или используйте jmxterm и выполните его команду domains.

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

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

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