2008-06-19

JMX简单实例

关键字: jmx
一、概念

1.什么是JMX:JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。

2.JMX的特点:JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。JMX是一种应用编程接口,可扩充对象和方法的集合体,可以用于跨越一系列不同的异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用它提供了用户界面指导、Java类和开发集成系统、网络及网络管理应用的规范。

3.JMX的优点:JMX可以非常容易的使应用程序具有被管理的功能;提供具有高度伸缩性的架构;主要提供接口,允许有不同的实现

4.JMX的详细内容:http://www.itisedu.com/phrase/200604261751455.html(以上内容摘抄于此)

二、简单实例

1.建立一个需要被JMX管理的类Hello
package bcndly.test.jmx;

public class Hello implements HelloMBean {
	
	private String name;

	public String getName() {
		return name;
	}

	public void printHello() {
		System.out.println("Hello, " + name);
	}

	public void printHello(String theName) {
		System.out.println("Hello, " + theName);
	}

	public void setName(String name) {
		this.name = name;
	}

}


2.建立Hello类的MBean接口,接口名必须是要管理的类名+MBean
package bcndly.test.jmx;

public interface HelloMBean {
	
	public String getName();

	public void setName(String name);

	public void printHello();

	public void printHello(String theName);
}


3.创建一个Agent类
package bcndly.test.jmx;

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("bcndyl:name=HelloWorld");
		server.registerMBean(new Hello(), helloName);
		ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8091");
		HtmlAdaptorServer adapter = new HtmlAdaptorServer();
		server.registerMBean(adapter, adapterName);
		adapter.start();
		System.out.println("start.....");
	}

}

说明:
  • HtmlAdaptorServer在jmxtools.jar包中,需要到SUN网站下载JMX 1.2.1 Reference Implementation
  • MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心.JMX1.0规范提供一个接口叫 javax.management.MBeanServer. 所有管理的在MBean操作通过MBeanServer执行.使用MBeanServer实例,你能够管理所有MBean.每一个MBean具有一个唯一标志,叫ObjectName.
  • ObjectName (javax.management.ObjectName)是一个类,唯一标志一个在MBeanServer的MBean.这个对象名称用于管理应用程序来标志MBean以便操作能够在适当的MBean上被调用.一个对象名称包含两部分:域名称和没有经过排序的一个或者多个关键属性集,语法:[domain name]:property=value[,property=value]
  • AdaptorServer,这个类将决定MBean的管理界面,这里用最普通的Html型界面。AdaptorServer其实也是一个MBean
  • 运行HelloAgent,打开IE输入http://localhost:8091就可以看到注册的MBean,在控制台看printHello的输出结果
评论
发表评论

您还没有登录,请登录后发表评论

lveyo
搜索本博客
我的相册
268bc79d-cd7c-361f-aa45-7733136bcff0-thumb
memcached
共 3 张
存档
最新评论