0
我有一个无状态EJB(3),它使用内部缓存,每24小时自动刷新一次。我想公开一个MBean方法,以便能够通过Jboss 4.2上的JMX控制台强制高速缓存过期,甚至在此EJB上缓存重新加载。如何将无状态EJB方法公开为MBean(在Jboss上)?
有人可以分享一个关于如何编写这个场景的例子吗?当谈到创建我自己的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
}
...
}
您提供的链接是关于MDB而不是JMX MBean。但是我在浏览JBoss站点时发现这个: http://www.jboss.org/ejb3/docs/reference/build/reference/en/html/jboss_extensions.html 我可能会使用@Service,尽管它是架构性的改变并通过使用JBoss类而不是标准的JMX引入了供应商锁定。 – 2010-02-08 15:03:38
@Michal, 很高兴你发现了一些可以帮助你前进的东西,即使我无法帮助你:-) – 2010-02-08 17:08:01