2012-03-06 3 views
1

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

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 '. Любая идея, почему она находят больше одного? Когда я googled, я обнаружил, что могу указать «идентификатор агента», чтобы найти требуемый MBean-сервер, но опять же, если мы развертываем этот код в нескольких средах, идентификатор агента может быть не таким (не может быть статическим) ...

Все входы на это ценится ...

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

ответ

1

Я думаю, что эти два MBean сервера соответствуют:

  1. «Платформа» MBean сервер - установленный JVM , Этот MBean сервер будет иметь все MBeans встроенных, как: java.lang: тип = время выполнения
  2. WebSphere условии MBean сервер - который имеет MBeans как WebSphere: имя = контейнер сервлетов, процесс = ...

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

+0

Я получаю PlatformMBeanServer и Sun JmxMbeanServer. Я не вижу, чтобы я получил «WebContainer» Mbean. Я не загружаю эти бобы через веб-контейнер, а я загружаю через контейнер EJB (означает, что перехватчик EJB инициализирует контекст весеннего приложения). Тем не менее, я нашел способ указать в конфигурации использовать только «PlatformMBeanServer», мой MBean, похоже, инициализируется нормально, но я не вижу этого через JConsole. JConsole не смог найти мою Mbean. Я не уверен, какой Mbeanserver Jconsole загружается. –