У меня есть EGB (3) без состояния, в котором используется внутренний кеш, который обновляется автоматически каждые 24 часа. Я хотел бы показать метод MBean, чтобы иметь возможность принудительно завершить кеширование или даже перезагрузить кеш этого EJB через консоль JMX на Jboss 4.2.Как выставить метод EJB без учета состояния как MBean (на Jboss)?
Может ли кто-нибудь поделиться примером о том, как закодировать этот сценарий? Я совершенно не знаком с JMX, когда речь заходит о создании моих собственных фасолей.
Должен ли я создать MBean, который вызывает мой EJB, или можно ли выставить конкретный метод EJB в качестве интерфейса Mbean, используя аннотацию на самом EJB?
EJB выглядит следующим образом:
@Stateless
@Local(BusinessCalendar.class)
public class BusinessCalendarBean implements BusinessCalendar {
synchronized private LocalDateKitCalculatorsFactory getCalculatorFactory() {
LocalDateKitCalculatorsFactory ldkc = (LocalDateKitCalculatorsFactory) CacheService.get(CACHE_KEY);
if (ldkc == null) {
ldkc = getCalculatorFactory();
CacheService.put(CACHE_KEY, ldkc);
}
return ldkc;
}
public function expireCache() {
// I would like to expose this as JMX managed method
}
...
}
Ссылка, которую вы предоставили, касается MDB, а не JMX MBeans. Но я нашел это во время просмотра сайта JBoss: http://www.jboss.org/ejb3/docs/reference/build/reference/en/html/jboss_extensions.html Я, вероятно, буду использовать @Service, хотя это архитектурное изменение и вводит блокировку поставщика с использованием классов JBoss вместо стандартного JMX. –
@Michal, рад, что вы нашли что-то, что поможет вам отправиться, даже если я не могу вам помочь :-) –