`

什么是MBeanServer

阅读更多

什么是MBeanServer

MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心.JMX1.0规范提供一个接口叫 javax.management.MBeanServer. 所有管理的在MBean操作通过MBeanServer执行.使用MBeanServer实例,你能够管理所有MBean.每一个MBean具有一个唯一标志,叫ObjectName.

什么是ObjectName

ObjectName (javax.management.ObjectName)是一个类,唯一标志一个在MBeanServer的MBean.这个对象名称用于管理应用程序来标志MBean以便操作能够在适当的MBean上被调用.一个对象名称包含两部分.它们是

  1. 一个域名称
  2. 一个没有经过排序的一个或者多个关键属性集

域名称是一个大小写敏感的字符串,这个字符串可以包括任何除[: , = * ?]之外的字符.

域名称部分可以在一个对象名称里面忽略,如果这样的话,MBeanServer能够提供一个缺省的域名称.缺省的域名称将是DefaultDomain.

关键属性集组织对象名称的第二部分.一个关键属性是一个名称-值对,名称不需对应MBean的任意属性或者操作.关键属性集必须包含至少一个关键属性.它可以包含任意数量的关键属性,这些关键属性的顺序没有意义.

例如,如果我们描述一个海豚为MBean,那么一套对象名称可以是

Animals:name=dolphin,kind=fish

在这个对象名称中,字符串Animals 组成域名称, 关键属性集由两个关键属性描述:名称和类型,它们的值分别为dolphin和fish.

通用的对象名称描述 如以下语法:

[domain name]:property=value[,property=value]

如果域名称被省略, MBeanServer将提供一个缺省的域名称叫[DefaultDomain].至少必须包含一个关键属性.任意数量的关键属性都可以添加进来.

创建一个MBeanServer 实例

MBeanServer实例能够用MBeanServerFactory类提供的方法获取.MBeanServerFactory类提供了以下方法来获取MBeanServer实例:

public static MBeanServer createMBeanServer()

public static MBeanServer createMBeanServer(String domain)

public static MBeanServer newMBeanServer()

public static MBeanServer newMBeanServer(String domain)

在以上声明的方法中,字符串domain描述对象名称(object name)的域部分.createMBeanServer方法和newMBeanServer方法返回一个MBeanServer实例.这两个方法的区别在于createMBeanServer返回一个MBeanServer实例并且保存这个实例的关联以便能够用findMBeanServer方法访问这个实例.newMBeanServer方法将不保存这个被创建的MBeanServer的实例的任何关联.

如果使用一个变量的构造器创建一个MBeanServer实例,这个字符串变量将作为创建的MBeanServer实例的域名.如果没有变量的构造器被用来创建MBeanServer实例,那么域名称将用字符串DefaultDomain.

查找一个MBeanServer 实例

MBeanServerFactory类提供一个方法叫findMBeanServer用于一个指定MBeanServer实例或者所有MBeanServer实例能够被获取的情况.这个方法的声明为

public static ArrayList findMBeanServer(String id) 这里字符串id表明 MBeanServer 的标志符. 如果这个字符串为null, 那么返回所有在此JVM中注册的 MBeanServer . 如果想返回相应指定的MBeanServer实例,那么必须提供这个MBeanServer实例的相应字符串id. 这个字符串id能够通过 MBeanServerDelegateMBean 的StringId 属性获取.

MBeanServerDelegate MBean

无论一个MBeanServer何时被初始化,MBeanServerDelegate类被作为一个MBean注册,名字为JMImplementation:type=MBeanServerDelegate. 这个MBean提供关于这个 MBean 服务器的信息.MBeanServerDelegate MBean 具有七个只读属性,名字为 MBeanServerId, SpecificationName, SpecificationVersion, SpecificationVendor, ImplementationName, ImplementationVersion 和ImplementationVendor.

XMOJO项目5 的MBeanServerDelegate MBean 提供的属性的缺省值为:

属性名称 属性值
SpecificationVersion 1.0, Final Release
SpecificationVendor Sun Microsystems Inc.
ImplementationVersion 5
ImplementationVendor XMOJO (sponsered by AdventNet Inc.)
ImplementationName The XMOJO Project
MBeanServerId _1
SpecificationName Java Management Extensions Instrumentation and Agent Specification

MBeanServerDelegate MBean 响应 MBeanServer 发出的广播消息.无论何时一个MBean被注册或者被注销,MBeanServerDelegate MBean 广播类型分别为jmx.mbean.created和jmx.mbean.deleted的消息到所有注册的监听器.

需要记住的几点

  1. MBeanServer 维护一个注册的MBean.每一个MBean由一个唯一命名的模式叫对象名称(object name)区分.
  2. MBeanServer 实例能够用MBeanServerFactory类的静态方法获得.
  3. MBeanServerDelegate MBean 是一个MBeanServer的描述,也是MBeanServer发出消息的广播者.
分享到:
评论

相关推荐

    JMX(一)-------MBean server

    NULL 博文链接:https://90haofang-163-com.iteye.com/blog/1901416

    javasnmp源码-02-jmx-demo:如何使用JMX来管理程序

    什么是JMX JMX,全称Java Management Extensions,用于我们管理和监控java应用程序。JMX有以下用途: 监控应用程序的运行状态和相关统计信息。 修改应用程序的配置(无需重启)。 状态变化或出错时通知处理。 举个...

    BEA WebLogic Server管理指南

    在Windows、Linux和AIX上成功安装和配置WebLogic Application Server在一个或多个服务器与群集上部署和配置应用程序管理JMX对象,如MBean与MBeanServer 理解J2EE服务,包括EFB、JNDI、JDBC、JMS等 使用管理控制台来...

    特西计划

    Tramite connettore RMI,从客户端到JMX全部的MBeanServer,从代理到控制台的所有MBean的恢复,以及从控制台到val ire questa metric的特定标记。 按顺序,在Openshift中每次部署JmxMonitor程序后将在Java...

    jmx-mbeans:使用mbean服务器自定义mbean impl和reg

    jmx-mbeans 创建了自定义Mbean类,以接收一些简单操作(如求和操作)的度量。 创建了MBeanServer并注册了自定义... 使用jconsole工具连接到我的MBeanServer。 在jconsole中,能够查看自定义Mbean属性,操作和通知。

    aix oracle

    管理JMX对象,如MBean与MBeanServer 理解J2EE服务,包括EFB、JNDI、JDBC、JMS等 使用管理控制台来创建并监视服务器、群集和应用程序 在遗留系统和XML Web应用程序之间集成进程与数据 在现有基础设施中工作,如IIS 和...

    shelbie-mbeans-commands

    简化 MBeanServer(平台的默认)操作: 浏览 MBean 列出域 显示 MBean 的结构 (MBeanInfo) 显示 MBean 的属性值 安装 使用以下命令安装: start mvn:com.peergreen.shelbie/mbeans-commands/1.0.0-SNAPSHOT ...

    How Tomcat Works: A Guide to Developing Your Own Java Servlet Container

    13.6 为什么必须要有一个host 111 13.7 应用程序1 111 13.8 Engine接口 112 13.9 StandardEngine类 112 13.10 StandardEngineValve类 112 13.11 应用程序2 113 第14章 Server与Service 114 14.1 概述 114 14.2 ...

    how-tomcat-works

    13.6 为什么必须要有一个host 111 13.7 应用程序1 111 13.8 Engine接口 112 13.9 StandardEngine类 112 13.10 StandardEngineValve类 112 13.11 应用程序2 113 第14章 Server与Service 114 14.1 概述 114 14.2 ...

    Spring 2.0 开发参考手册

    20.2.2. 复用现有的MBeanServer 20.2.3. MBean的惰性初始化 20.2.4. MBean的自动注册 20.2.5. 控制注册行为 20.3. 控制bean的管理接口 20.3.1. MBeanInfoAssembler 接口 20.3.2. 使用源码级元数据 20.3.3. ...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier ...

    Spring中文帮助文档

    2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 ...2.2.5. 在classpath中自动搜索组件 ...2.3.3. 对bean命名pointcut( ...

    Spring API

    前言 1. 简介 1.1. 概览 1.1.1. 使用场景 2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)...

    Spring-Reference_zh_CN(Spring中文参考手册)

    1. 简介 1.1. 概览 1.2. 使用场景 2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP ...

Global site tag (gtag.js) - Google Analytics