2016-04-26 11 views
3

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jmx/JmxAutoConfiguration.javazwingende Standard RegistrationPolicy auf AnnotationMBeanExporter im Frühjahr Boot-

zeigt

RegistrationPolicy.FAIL_ON_EXISTING 

gesetzt wird.

Wir verwenden Spring Boot erstellte WARs in einem Standalone tcserver. Neue Bereitstellungen treten auf, bevor alte Versionen nicht bereitgestellt werden, sodass Sie mehrere Versionen bereitstellen können.

ich schon bin mit

spring.jmx.default-domain=[app name] 

Auseinandersetzungen über Anwendungen zu vermeiden ... aber

Wir sehen Fehler wie

UnableToRegisterMBeanException: Unable to register MBean with key 'dataSourceMBean' 
    nested exception is javax.management.InstanceAlreadyExistsException 

für unsere Datenquelle Mbean über andere Version des gleichen App

würde Ich mag eine per http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jmx.html#jmx-exporting-registration-behavior

RegistrationPolicy.IGNORE_EXISTING 

einzustellen.

Kann ich dies einfach unter Beibehaltung der ObjectNamingStrategy und defaultDomain tun? Obwohl es überhaupt nicht schwierig ist, hoffe ich, dass ich nicht so viel von JmxAutoConfiguration überschreiben muss?

schade, dass es kein

spring.jmx.mbeanExporter.registrationPolicy 

Feder Boot Eigenschaft

Prost

Antwort

2

Obwohl diese Frage vor einiger Zeit gefragt wurde, und vielleicht haben Sie schon gefunden, die Antwort, werde ich meine 2 geben Hier habe ich mich einmal diesem Problem gestellt und eine Lösung gefunden, die für mich funktioniert hat.

Anfangs war es nicht ganz klar, was ich tun musste, aber wenn sie sorgfältig die gleiche Feder Dokumentation lesen Sie in Ihrer Frage zur Verfügung gestellt ich Sie das Anmeldeverhalten auf SpringBoot durch die Klasse Annotation Einführung steuern kann herausgefunden

@EnableMBeanExport(registration=RegistrationPolicy.IGNORE_EXISTING)

ermöglichen Frühling eine zweite JMX Registrierung ignorieren, wenn die MBean bereits registriert wurden, als at the spring documentation here

gesehen werden kann