2009-03-31 4 views
10

Каковы некоторые из лучших практик в разработке JMX MBean? Любые примеры тех, которые вы чувствуете, особенно полезны?Каковы характеристики хорошо продуманного JMX MBean

+1

Ищем конкретные примеры хорошо продуманного JMX MBean – McGovernTheory

+0

Любые примеры действительно хороших хорошо продуманных JMX MBeans оценены ... – McGovernTheory

ответ

6

Возвращает абсолютные значения вместо ставок. например возвращает общее количество db, а не выводит курс.

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

Если вы используете компоненты JMX в основном через интерфейс HTML, то следуют несколько практик. Ниже показано, что ваш компонент JMX должен обернуть существующий bean-компонент (в отличие от JMX-экспонирования существующих методов):

  1. выводить правильно отформатированные строки, представляющие возвращенные объекты. Получение значения по умолчанию toString() может быть рядом с бесполезным
  2. исключения для захвата и отображения. В противном случае вы, скорее всего, получите пустую страницу и должны перейти в файлы журнала, чтобы определить, что пошло не так.
  3. Если вы показываете разные наборы символов, вам может потребоваться избежать выхода соответствующим образом, чтобы предотвратить проблемы с отображением (я столкнулся с это с контролем JMX отображаются наши китайские данные)
  4. входы открытых методов следует продезинфицировать должным образом (например, если вы вводите идентификатор как часть операции, которую вы хотите trim() его, чтобы удалить пробелы и т.д.)

Вышеизложенное изменяет акцент с bean-компонента, который просто отображается через JMX, на что-то приближающееся к полезной консоли администратора.

4

Первое, что досталось мне с моим первым компонентом JMX - это возвращаемые типы - это намного проще, если ваши методы возвращают строки - таким образом ваш клиент может легко отобразить ответ (я работал в основном с JConsole) - если вы Не делайте этого, вы получаете такие вещи, как [email protected] в качестве ответа, что не означает многого :)

+2

Я бы модифицировал это, чтобы предложить возвращаемые примитивы плюс строки. Таким образом, вы можете правильно регистрировать числовые значения (не требуется синтаксический анализ) –

3

Убедитесь, что атрибуты не имеют побочных эффектов и предсказуемы в работе.

Нет ничего хуже, чем невинно выглядящий атрибут, выполняющий трудоемкую (или ресурсоемкую) операцию. В свое время я видел некоторых реферирующих пользователей.

+0

Любые примеры MBeans, которые вы считаете отличными примерами хорошо продуманных? – McGovernTheory

+1

Должен признаться, что не использовал многие стандартные бобы. Те, что я реализовал, как правило, являются счетчиками, таблицами данных и т. Д. Простота - это ключ. Это зависит от вашей аудитории. Я проектирую MBeans для технической поддержки (не Dev People) и стараюсь не делать их слишком сложными! – Fortyrunner

1

Не используйте JMX для регистрации, например, не используйте функцию MBean, которая возвращает данные обо всех соединениях с момента запуска.

Следует помнить, что JMX предназначен для мониторинга. Значение - отображать только данные, относящиеся к текущему моменту.