jmx使用简介

2016-06-16 22:01:00
admin
原创 2394
摘要:jmx使用简介

一、jmx是什么

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架(有多种实现)。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

SUN的默认实现在rt.jar里面,但jmxtools.jar需要下载:jmx-1_2_1-ri.zip


二、jmx示例

创建一个MBean,接口名后面必须跟上MBean:

public interface HelloMBean {
    public String getName();
    public void setName(String name);
    public void printHello();
    public void printHello(String whoName);
}


创建MBean的实现:
public class Hello implements HelloMBean {

    private String name;
    
    public String getName() {
        return name;
    }   
    public void setName(String name) {
        this.name = name;
    }    
    public void printHello() {
        System.out.println("Hello World, " + name);
    }    
    public void printHello(String whoName) {
        System.out.println("Hello , " + whoName);
    }
}


创建一个agent类,用于管理MBean:
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import com.sun.jdmk.comm.HtmlAdaptorServer;

public class HelloAgent {

    public static void main(String[] args) throws Exception {
        MBeanServer server = MBeanServerFactory.createMBeanServer();
        
        ObjectName helloName = new ObjectName("chengang:name=HelloWorld");
        server.registerMBean(new Hello(), helloName);
        
        ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8082");
        HtmlAdaptorServer adapter = new HtmlAdaptorServer();
        server.registerMBean(adapter, adapterName);
        
        adapter.start();
        System.out.println("start.....");
    }
}


源码下载:

HelloMBean.java Hello.java HelloAgent.java


示例说明:

1 读属性使用is或者get,写属性使用set。

2 将Hello和HtmlAdaptorServer(提供web输出)的实例注入到MBeanServer。

3 MBean注入名称的格式为:“域名:name=MBean名称”,域名和MBean名称都可以任意取。

  描述:DomainName:property=value[,property2=value2]*

  域名:JMImplementation等特殊值不能使用,多个MBean可以使用同一域名。

4 推荐使用标准MBean,不推荐使用动态MBean。(动态MBean构造起来麻烦)

5 createMBeanServer可以指定参数,用于设置默认域名。

6 HtmlAdaptorServer可以设置端口。

7 访问http://localhost:8082


三、HtmlAdaptorServer功能

1 列出所有MBean,可以使用域名或者key-value-pairs过滤(pairs不排序)。

2 创建MBean、删除MBean、显示MBean构造函数。

3 MBean查看、设置、远程调用(Reload用于自动刷新)。

发表评论
评论通过审核之后才会显示。