首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态实例化JMX MBeans

动态实例化JMX MBeans
EN

Stack Overflow用户
提问于 2012-08-31 04:35:02
回答 1查看 3.6K关注 0票数 2

我有一个白标/多tennant服务器,提供相同的服务,但为多个客户提供品牌。我想使用JMX来监控每个客户的状态(呼叫的nbr、错误的nbr等)。

我知道如何使用Spring JMX注释来连接我的POJO(根据下面的代码)。我真正想要的是每个客户一个MBean,但是因为客户是在服务器启动时动态加载的,所以我不知道如何使用注释将其连接起来。

这个是可能的吗?如果没有,是否可以在启动时实例化我的MBeans?

代码语言:javascript
复制
@Component
@ManagedResource(objectName = "TravelAPI:name=Customer") 
public class CustomerStatus extends GeneralCustomerStatus {

    @ManagedAttribute
    String customerId;
    .
    .
    .


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-31 05:26:11

我真正想要的是每个客户一个MBean,但是因为客户是在服务器启动时动态加载的,所以我不知道如何使用注释将其连接起来。

我们所做的是让实体实例化您的动态对象,通过MBeanExporter将它们注册到JMX。我们将MBeanExporter实例注入到工厂实体中,然后调用MBeanExporter.registerManagedResource(...)

例如,我们这样做:

代码语言:javascript
复制
...
mbeanExporter.registerManagedResource(beanInstance);
...

@Required
public void setMbeanExporter(MBeanExporter mbeanExporter) {
    this.mbeanExporter = mbeanExporter;
}

我们还使用NamingPolicy,这样动态对象就可以提供它们自己的名称,从而使它们具有唯一性。在这里查看更多详细信息:

Change @ManagedResource objectName dynamically

顺便说一句,我的SimpleJMX package有一些代码可以帮助处理动态对象。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12205042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档