класс запуска (расширяет ServiceMBean) и сервлет загрузки при запуске - PullRequest
0 голосов
/ 19 января 2012

Я новичок в jboss и хотел бы узнать, в чем разница между ServiceMBean и тегом сервлета загрузки при запуске в web.xml? Кроме того, я хотел бы знать, какой из них всегда будет загружаться первым или они загружаются одновременно? В какой ситуации мне следует использовать MBean и когда мне следует использовать сервлет запуска, или это не имеет значения?

Мне нужно написать класс / сервлет для проверки, если установлены все необходимые системные свойства (например, -DINSTALL_DIR = blah). Если нет, то остановитесь прямо там. иначе продолжите и запустите приложение.

Заранее спасибо

-A

1 Ответ

1 голос
/ 19 января 2012

ServiceMBean - это JMX, он является частью вашей JVM. тег сервлета загрузки при запуске в web.xml является частью вашего приложения J2EE.

JMX является частью J2SE, начиная с JDK 1.5. Таким образом, вы можете иметь один ServiceMBean на JVM. не за приложение. JMX используется в основном для мониторинга и управления JVM. Он обеспечивает доступ к такой информации, как: количество загруженных классов и число запущенных потоков, потребление памяти, статистика сбора мусора, обнаружение взаимоблокировок по требованию и другие. Другое распространенное использование - обновить кеш.

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

Проблема, с которой мы сталкивались раньше, заключалась в том, что нам иногда приходилось обновлять кэш, поскольку имя пользователя изменялось в базе данных. Если у нас был метод обновления интерфейса MBean, то мы могли бы вызвать это событие с помощью консоли JMX. Консоль JMX может быть веб-клиентом или толстым клиентом, который поставляется с нашим сервером J2EE. Наш J2EE-сервер также может поддерживать SNMP. Это означает, что мы можем вызвать метод из стандартной консоли Tivoli или UniCenter. http://www.theserverside.com/news/1364664/J2EE-Application-Management-The-Power-of-JMX

Вам не нужен удаленный доступ к ServiceMBean, чтобы вызвать какое-то асинхронное действие. Более того, вам нужна проверка области применения, а не всей JVM (хотя теоретически вы можете решить эту проблему в ServiceMBean). Поэтому более естественно сделать это как тег сервлета загрузки при запуске в web.xml. Таким образом, при каждом запуске вашего приложения будет происходить проверка.

Еще одно уточнение: ServiceMBean - это JBoss-way для написания JMX. Все MBean-компоненты являются серверными (не прикладными). Вот почему я свободно использую MBean и ServiceMBean.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...