Я ищу решение для регистрации MBean-серверов или целых MBean-серверов с разных виртуальных машин Java на центральном MBean-сервере, который также должен работать на отдельной виртуальной машине. Цель состоит в том, чтобы иметь только один центральный сервер MBean, который содержит все MBean всей системы.
Еще одно дополнительное требование заключается в том, что «клиентские» MBean-серверы должны подключаться / регистрироваться к центральному MBean-серверу, а не наоборот. Центральный MBean-сервер не нуждается в каких-либо знаниях «клиентских» MBean-серверов для регистрации.
Я нашел только примеры JMX, в которых «главный» MBean-сервер подключается к «клиентским» MBean-серверам и получает их зарегистрированные MBean-компоненты, но не другим способом. К сожалению, метод registerMBean (), который используется для регистрации ваших собственных MBean-компонентов, существует только для локальных MBean-серверов, но не для удаленных MBean-серверов в MBeanServerConnection. Там можно использовать только метод createMbean (), проблема здесь в том, что он работал для регистрации MBean на удаленном сервере MBean, но затем вам нужно использовать разные объекты, один локальный и другой на удаленном сервере MBean. Поэтому проблема в том, что когда что-то меняется на локальном объекте, изменения происходят только там, зарегистрированный MBean на удаленном сервере MBean не получает эти изменения (новые значения переменных ...). Единственное решение, которое у меня есть, - создать цикл для отмены регистрации MBean-компонентов на удаленном Сервере и создания их новыми, чтобы получить действительные значения объекта. Это очень уродливо, а также не очень хорошо для производительности.
Я надеюсь, что кто-то может дать мне подсказку, как я могу сделать это лучше.