- 浏览: 387703 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
surpassno:
南冠楚囚 写道如果是复制一个一位数组,那么改变复制后的数组并不 ...
java的system.arraycopy()方法 -
南冠楚囚:
如果是复制一个一位数组,那么改变复制后的数组并不影响原数组。你 ...
java的system.arraycopy()方法 -
wxq5513866:
有密码,大家不要下载了,下载也解压不了,别上当了
android中调用webservice -
wxq5513866:
happyhan 写道还要密码啊 能否告知密码
android中调用webservice -
happyhan:
还要密码啊 能否告知密码
android中调用webservice
"JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理"
举一个应用实例:在一个系统中常常会有一些配置信息,比如服务的IP地址,端口号什么的,那么如何来写这些代码呢?
1. 程序初哥一般是写死在程序里,到要改变时就去改程序,然后再编译发布;
2. 程序熟手则一般把这些信息写在一个配置文件里(JAVA一般都是*.properties文件),到要改变时只要改配置文件,但还是重新启动系统,以便读取配置文件里的新值;
3. 程序好手则会写一个段代码,把配置值缓存起来,系统在读值的时候,先看看配置文件有没有更动。如有更改则重读一遍,否则从缓存里读取值
4. 程序高手则懂得取物为我所用,用JMX!把配置属性集中在一个类,然后写一个叫MBean的东东,再配置一下就轻松搞定了。而且JMX自动提供了一个WEB页面来给你来改变这些配置信息。
JMX中MBean有DynamicMBean和StandardMBean两类,前者动态组装一个监控对象,较为复杂,但更为灵活,不需要监控类继承*MBean接口,后者简单。
架构图如下:
1.建立一个需要被JMX管理的类Hello
Java代码
2.建立Hello类的MBean接口,接口名必须是要管理的类名+MBean
Java代码 复制代码
3.创建一个Agent类(通过html-adapter方式)
Java代码 复制代码
说明:
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的输出结果
3.创建一个Agent类(通过rmi-connector方式)
测试类
举一个应用实例:在一个系统中常常会有一些配置信息,比如服务的IP地址,端口号什么的,那么如何来写这些代码呢?
1. 程序初哥一般是写死在程序里,到要改变时就去改程序,然后再编译发布;
2. 程序熟手则一般把这些信息写在一个配置文件里(JAVA一般都是*.properties文件),到要改变时只要改配置文件,但还是重新启动系统,以便读取配置文件里的新值;
3. 程序好手则会写一个段代码,把配置值缓存起来,系统在读值的时候,先看看配置文件有没有更动。如有更改则重读一遍,否则从缓存里读取值
4. 程序高手则懂得取物为我所用,用JMX!把配置属性集中在一个类,然后写一个叫MBean的东东,再配置一下就轻松搞定了。而且JMX自动提供了一个WEB页面来给你来改变这些配置信息。
JMX中MBean有DynamicMBean和StandardMBean两类,前者动态组装一个监控对象,较为复杂,但更为灵活,不需要监控类继承*MBean接口,后者简单。
架构图如下:
1.建立一个需要被JMX管理的类Hello
Java代码
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
Java代码 复制代码
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类(通过html-adapter方式)
Java代码 复制代码
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(); adapter.setPort(8091); 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的输出结果
3.创建一个Agent类(通过rmi-connector方式)
public class HelloAgent { public static void main(String[] args) throws Exception { MBeanServer mbs = MBeanServerFactory.createMBeanServer("RMIAgent"); RmiConnectorServer connector = new RmiConnectorServer(); ObjectName connectorName = null; try { connectorName = new ObjectName("RMIAgent:name=RMIConnector"); mbs.registerMBean(connector, connectorName); Hello hello = new Hello(); ObjectName testMBeanName = new ObjectName("RMIAgent:name=Hello"); mbs.registerMBean(hello, testMBeanName); connector.start(); } catch (Exception e) { e.printStackTrace(); } } } }
测试类
public class RMIManager { public static void main(String[] args) { RmiConnectorClient client = new RmiConnectorClient(); RmiConnectorAddress address = new RmiConnectorAddress(); [color=orange]try { client.connect(address); ObjectName testMBeanName = ObjectName.getInstance("RMIAgent:name=testMBean"); client.invoke(testMBeanName, "fun", null, null); client.setAttribute(testMBeanName, new Attribute("Field", new String( "hello JMX from manager!"))); System.out.println(client.invoke(testMBeanName, "fun", null, null)); } catch (Exception e) { e.printStackTrace(); } finally { }[/color] } }
发表评论
-
RMI介绍
2012-05-18 09:55 1024Java RMI (Remote Method Invocat ... -
java多线程文件下载
2012-03-08 20:03 24251、DownloadManager类 import java. ... -
java异常处理
2011-11-30 15:27 948public class test { /** ... -
快排和插入排序
2011-10-20 17:08 1119public class CombineQuickSortIn ... -
java NIO
2011-10-09 19:22 1391一、NIO的出现 NIO是JDK1.4里面才出 ... -
java 远程通信协议
2011-10-09 16:55 1540Java 远程通讯可选技术及原理 在分布式服务框架中,一个最基 ... -
system.exit
2011-09-29 17:00 986System.exit()用来结束当前运行的java虚拟机,参 ... -
java 文件读取方法
2011-09-27 14:50 11791、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文 ... -
timestamp时间戳
2011-09-05 09:51 1190timestamp是一种时间类型 精度很高,比datetim ... -
java 动态代理类的实现,原理及应用
2011-09-03 11:02 2140在目前的Java开发包中包含了对动态代理的支持,但是其实现只支 ... -
java annotation 介绍
2011-09-02 11:03 915元数据的作用 如果要 ... -
java 反射
2011-08-20 11:27 760JAVA语言中的反射机制: 在Java 运行时 环境中 ... -
junit使用
2011-08-05 16:41 1135测试分类:白箱测试、黑箱测试、单元测试、集成测试、功能测试.. ... -
ThreadLocal 知识
2011-08-05 13:58 802ThreadLocal是什么 早在JD ... -
httpclient 介绍
2011-07-28 09:33 9961.HttpClient简介 HttpCl ... -
java解析xml的四种方法
2011-07-13 22:52 14071. DOM(Document Object Model) ... -
xml字符串转化为规则格式的xml字符串
2011-07-13 18:53 1362import java.io.ByteAr ... -
java中的参数传递
2011-07-13 10:48 953面试题:当一个对象被当 ... -
StringUtils的实用方法
2011-07-13 10:16 1667tringUtils 方法的操作对象是 java.lang. ... -
java dom解析xml
2011-07-08 16:56 1222一、前言 用Java解析XML文档,最常用的有两种方 ...
相关推荐
jmx的简单介绍和使用,包含一些简单的代码示例,看完基本能了解jmx并使用。
JMX小例子以及介绍 JMX小例子以及介绍 JMX小例子以及介绍
书中不仅有对于基础知识的介绍,还有对于JMX开发中重大的体系架构问题的深入探讨,总结了大量JMX开发中的设计模式,并讨论了框架、安全性与性能等等。书中提供了几个典型的例子,兼顾各种开发平台,这些例子的代码...
有关jmx技术培训的ppt 比较基础的讲解了jmx技术
《jmx技术介绍》配套源代码 示例代码多而又简单清晰
java管理扩展(The Java Management extensions )也叫做JMX规范,定义了一个java网络管理、监控和应用程序服务的架构,以及其中的设计模式和API。这个章节将介绍所有这些内容,并展示JMX涉及的广阔领域。
这篇文档是对JMX 的一个介绍,给出了定JMX 设备层,代理层和部署层服务的规范。 它不是编程手册或者教程,而是希望读者可以对JMX 架构、设计模式和编程接口有一定程 度的理解。 完整的JMX 规范是由本书和API 文档...
本文档主要介绍了jmx连接T远程监控tomcat的详细配置,文档包含了一些配置的详细图片和需要注意的内容
分析了当前网络监控中面临的主要问题,提出了采用JMX方案来解决的办法。介绍了JMX的技术特点,并采用该技术实现了IP网络管理中的网络监控任务的调配和管理。
这是俞黎明一份关于jmx的介绍,以及如何结合spring开发jmx,是根据他的ppt改成的。
Java分布式应用学习笔记09JMX-MBean的介绍
主要介绍了Tomcat开启JMX服务方法的相关内容,小编觉得挺不错的,在这里给大家分享一下,需要的朋友可以参考。
本节代码详细说明文件上传功能的开发流程,介绍知识点如下: 1. 文件上传页面和显示上传成功页面代码内容。 2. UploadAction类中实现上传功能方法和上传文件属性介绍。 3. struts.xml中UploadAction配置,以及...
需要的自会需要,介绍没用,亲测可用。 javax.jms包,sun的JMS接口规范包,官方已经不提供了,这里给2分,给大家下载。
csdn有一个下载包含HtmlAdaptorServer这个class,不过不知道是不是官方的,而且跟网上介绍的资料不一样,所以自己去oracle官网找着下载下来分享给大家,只要2分啦 包含资源文件为如下: jmx_remote-1_0_1_03-ri.zip jmx-1...
JMX入门教程,详细介绍JMX的常用类和方法
JMX 技术是应用越来越广泛的技术,已经是JDK 标准的一部分。它的最新规范是1.4,这是介绍JMX的资料
概要的介绍了JMX技术,适合于初学者!通过该资料的学习,可以基本熟悉JMX的基本知识和技术架构!
基于JMX的IT系统管理关键技术研究与实现,详细介绍了使用jmx的方法