2013-04-25 2 views

ответ

7

Стандартная меша имеет фиксированные метаданные, которые не изменяются в течение всего срока службы MBean. Динамические MBeans определяют свои метаданные «на лету» и могут изменять и повторно публиковать свои метаданные. Подумайте об этой [плохо] надуманной аналогии с Java: предположим, вы написали класс, в котором указано количество файлов в каталоге. Стандартный метод класса может выглядеть следующим образом:

public int getFileCount(String directoryName)

С другой стороны, версия Dynamic MBean этого класса хотел бы начать с какими-либо методами, но при запуске, он просматривает каталоги доступны, и создает новый метод для каждого каталога найдено:

public int getFileCountDir1(); 
public int getFileCountDir2(); 
.... 
public int getFileCountDirN(); 

Так что это не очень полезная установка, но предположим, что вы хотите создать MBean, которые отображаются все виртуальная машина в Свойства системы. Ну ... Свойства системы меняются ... и нет разумного способа узнать, какие ключи свойств будут определены раньше времени, так что это будет лучшее представление о том, для чего нужен Dynamic MBean.

Плюсы и минусы на самом деле сводятся к:

  1. Стандартные MBeans легко создавать, а существующие экземпляры класса могут быть упакованы и представлены как стандартные MBeans.
  2. Динамические MBeans классны, когда они служат полезной цели, но их значительно больше усилий для реализации.
Смежные вопросы