2010-10-13 21 views
8

Czy ktoś może wyjaśnić, jakie są różnice między tymi dwoma?ManagementFactory.getPlatformMBeanServer() vs MBeanServerFactory.createMBeanServer()

Javadoc jest naprawdę niejasny dla mojego właściwego zrozumienia.

Jedną rzeczą, którą zauważyłem jest to, że jeśli użyję ManagementFactory.getPlatformMBeanServer() do zarejestrowania moich MBean, mogę wyświetlić je w Jconsole. Ale nie tak, jeśli używam MBeanServerFactory.createMBeanServer().

Dlaczego tak jest? Czy to jedyna różnica?

Dzięki.

Odpowiedz

7

ManagementFactory.getPlatformMBeanServer() zwraca odniesienie do istniejącego serwera MBean w JVM. JConsole przegląda fasole na tym serwerze.

Jeśli użyjesz createMBeanServer(), stworzysz całkowicie nowy serwer. JConsole nie ma o tym pojęcia, więc nie będzie widział zarejestrowanych w nim fasoli.