Найдено несколько серверов MBean — Spring JMX с Websphere 7

Я использую Spring 3 и открываю MBean через Spring, все работает нормально, но я вижу предупреждающее сообщение ниже в файле журнала.

WARN  org.springframework.jmx.support.JmxUtils  - Found more than one MBeanServer instance. Returning first from list.

Вот моя конфигурация:

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
    <property name="assembler" ref="assembler" />
    <property name="namingStrategy" ref="namingStrategy" />
    <property name="autodetect" value="true" />
    <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/>
</bean>

<bean id="jmxAttributeSource"
    class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource" />

<bean id="assembler"
    class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
    <property name="attributeSource" ref="jmxAttributeSource" />
</bean>

<bean id="WASAdminService" class="com.ibm.websphere.management.AdminServiceFactory"
    factory-method="getAdminService" />

<bean id="namingStrategy" class="com.xxxx.WebSphereNamingStrategy">
    <constructor-arg ref="WASAdminService" />
</bean>

Я поставил точку отладки и обнаружил, что она находит объекты com.ibm.ws.management.PlatformMBeanServer и com.sun.jmx.mbeanserver.JmxMBeanServer. Любая идея, почему он находит более одного? Когда я погуглил, я обнаружил, что могу указать «идентификатор агента», чтобы найти требуемый сервер MBean, но опять же, если мы развертываем этот код в нескольких средах, идентификатор агента может не совпадать (не может быть статическим)...

Любые материалы по этому поводу приветствуются...

Спасибо, Киран


person Kiran Gunda    schedule 06.03.2012    source источник


Ответы (1)


Я предполагаю, что два сервера MBean соответствуют:

  1. сервер MBean "Платформа" - установленный JVM. Этот сервер MBean будет иметь все встроенные компоненты Mbean, например: java.lang:type=Runtime
  2. WebSphere предоставила сервер MBean, который имеет такие MBean-компоненты, как WebSphere:name=WebContainer,process=...

Я новичок в этой области, но как раз собираюсь исследовать дальше. С моей точки зрения, я хотел бы указать сервер платформы Mbean, чтобы к нему было проще получить доступ из инструментов мониторинга, таких как JConsole и т. д.

person Evan    schedule 07.03.2012
comment
Я получаю PlatformMBeanServer и JmxMbeanServer от Sun. Я не вижу, чтобы получить Mbean "WebContainer". Я не загружаю эти bean-компоненты через веб-контейнер, а загружаю через контейнер EJB (означает, что перехватчик EJB инициализирует контекст приложения Spring). Тем не менее, я нашел способ указать в конфигурации использование только «PlatformMBeanServer», мой MBean, похоже, инициализируется нормально, но я не вижу этого через JConsole. JConsole не может найти мой Mbean. Я не уверен, какой Mbeanserver Jconsole загружается. - person Kiran Gunda; 08.03.2012