Tiny Java веб-сервер и JMX

У меня возникли небольшие проблемы с пониманием того, как связать JMX-агент с моим TJWS(веб-сервером Tiny Java)

Веб-сервер оснащен динамическими MBean-компонентами, которые предоставляют свои интерфейсы управления (атрибуты и операции) во время выполнения. Мы определили набор компонентов как часть TJWS и создали для каждого из них соответствующий MBean. ThreadPool или HTTP Session являются такими типами компонентов. При создании соответствующие MBean-компоненты получают ссылку на эти компоненты через их конструктор. При создании соответствующие MBean-компоненты получают ссылку на эти компоненты через их конструктор. Для каждого компонента мы выбрали набор значимых атрибутов для мониторинга

Значит ли это, что мне нужно изменить код сервера, чтобы он создавал MBeans для событий создания компонента? Или это означает что-то еще?:)

Я бы оценил, если бы кто-то мог указать мне в правильном направлении

1 ответ

Решение

Я посмотрел на ссылку, которую вы мне прислали. Я могу читать только первые 3 страницы этого (не платя за это). Однако в документах по TJWS ничего не говорится о JMX или MBeans, поэтому я предполагаю, что авторы статьи, должно быть, сами реализовали хуки JMX.

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

Модель демона MBeanServer и его MBeans являются удаленными для управляемого приложения, поэтому приложение должно предоставлять средства для удаленного вызова предоставляемых функций управления. Это может быть RMI, REST, WebServices и т. Д.

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

Модель драйвера То же, что и модель компонента.

Если честно, если это не академическое упражнение, я бы придерживался упрощенной модели компонентов, где существующие компоненты TJWS оснащены инструментами и реализуют интерфейсы MBean. Например, ваш ThreadPools будет реализовывать интерфейсы MBean и предоставлять атрибуты JMX, такие как MaxThreadCount и ActiveThreadCount. Затем эти MBean-компоненты должны быть зарегистрированы на платформе локальной виртуальной машины MBeanServer. (Предполагая Java 1.5+)

Удаленное взаимодействие и федерация MBeanServers будут обеспечиваться тем, что удаленное взаимодействие встроено в JVM (доступны все RMI, IIOP, WebServices и REST), а объединение может быть реализовано с использованием OpenDMK.

Другие вопросы по тегам