Каковы некоторые из лучших методов проектирования JMX MBean? Любые примеры тех, которые вы чувствуете, особенно полезны?
Каковы характеристики хорошо продуманного JMX MBean
Ответ 1
Возвращает абсолютные значения вместо ставок. например return общее количество db фиксирует, а не выводит скорость.
Таким образом, ваши клиенты могут контролировать и получать ставки самостоятельно, в течение любых периодов времени, которые они требуют. Возможно, что более важно, это защищает клиентов от недостающих скачков в ставках, если они только подключаются нечасто.
Если вы используете JMX beans в основном через интерфейс HTML, то я следую нескольким практикам. Ниже показано, что ваш JMX bean должен обернуть существующий bean (в отличие от JMX-демонстрации существующих методов):
- выводить правильно отформатированные строки, представляющие возвращенные объекты. Получение вывода по умолчанию
toString()
может быть рядом с бесполезным - исключения захвата и отображения. В противном случае вы, вероятно, получите пустую страницу и должны перейти в файлы журнала, чтобы определить, что пошло не так.
- Если вы показываете разные наборы символов, вам может потребоваться избежать выхода соответствующим образом, чтобы предотвратить проблемы с отображением (я столкнулся с этим с помощью JMX-управления, отображающего наши китайские данные).
- Входы для открытых методов должны быть дезинфицированы должным образом (например, если вы вводите идентификатор как часть операции, которую вы можете пожелать
trim()
, чтобы удалить пробелы и т.д.).
Приведенное выше изменяет акцент с bean, который просто открывается через JMX, на что-то приближающееся к используемой консоли администратора.
Ответ 2
Первым делом, связанным с моим первым JMX bean, были типы возврата - это намного проще, если ваши методы возвращают строки - таким образом ваш клиент может легко отобразить ответ (я работал в основном с JConsole) - если вы не делайте этого, вы получаете такие вещи, как [email protected] в качестве ответа, что мало значит:)
Ответ 3
Убедитесь, что атрибуты не имеют побочных эффектов и предсказуемы в работе.
Нет ничего хуже, чем невинно выглядящий атрибут, который выполняет трудоемкую (или ресурсоемкую) операцию. В свое время я видел некоторых реферистов.
Ответ 4
Не используйте JMX для ведения журнала, поэтому, например, не используйте функцию MBean, которая возвращает данные обо всех подключениях с момента запуска.
Следует помнить, что JMX предназначен для мониторинга. Значение - отображать только данные, относящиеся к текущему моменту.