【发布时间】:2010-02-08 12:44:58
【问题描述】:
我有一个使用内部缓存的无状态 EJB (3),它每 24 小时自动刷新一次。我想公开一个 MBean 方法,以便能够通过 Jboss 4.2 上的 JMX 控制台强制缓存过期甚至在此 EJB 上重新加载缓存。
有人可以分享一个关于如何编写这个场景的例子吗?在创建自己的 bean 时,我对 JMX 完全陌生。
我应该创建一个调用我的 EJB 的 MBean,还是可以通过在 EJB 本身上使用注释将特定的 EJB 方法公开为 Mbean 接口?
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
}
...
}
【问题讨论】: