`
oywl2008
  • 浏览: 1003128 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一、JMX简介

 
阅读更多

由于需要解决一个JMX的问题,回顾并总结了一下JMX相关的知识。

 

1. JMX架构

简单来说,JMX的组成以及关系如下:

JMX客户端代码   --->   JMX connector --->   {.........网络........} ---> MBean Server --->  MBean(被调用对象)

其中JMX connector和MBean Server在JDK里面已经提供,我们只需要实现被调用对象,已经调用的代码。而且,在JDK里面已经提供了非常多的MBean,可以直接使用。

 

2. 启用JMX

JMX的用处就是远程监控和管理。最普遍的就是JVM的运行状态的监控。

在我们的系统中,也可以有很多用处,例如,需要对一些运行状态或者参数进行查看或修改,特别是系统调优时,有几种处理方法或算法,可以通过JMX提供方便的修改,可以实时的看到结果。

 

要启用JMX,只需要在java的启动参数里面加上下面的参数

-Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

 

如果是tomcat,就用ctalena.sh start -Dcom......  这样就可以。

 

然后就可以运行jconsole,连接到远程的tomcat server。

 

3. MBean类型

在JMX标准中,定义了5中类型的MBean:

 

  • Standard MBeans
  • Dynamic MBeans
  • Open MBeans
  • Model MBeans
  • MXBeans

 

至于各种类型是什么意思,在JDK的tutorial中没有说明,我也懒得找其他资料,我觉得只是使用的话,就只需要知道标准的MBeans和MXBeans就可以。Standard MBeans就是最基础的MBean,通过它可以了解MBea的工作方式,对MBean有一个了解。

如果大家了解远程调用,就应该知道,一般远程的客户端的代码中要包含所要调用对象的存根(stub),也就是要包含远程对象的interface。在使用Standard MBeans时,我们就需要在调用端包含被调用的远程的MBean对象的接口。

 

而在MXBeans类型中,客户端不需要知道远程对象的类型,更不需要包含它的接口,就能够通过一些MXBeans中预定义的集合类型,就能够知道如何调用远程对象,需要的参数以及类型等。

在后面的例子中就可以看到MXBeans和普通MBean的区别。

 

 

3. Standard MBeans

使用这种类型的MBeans,首先,需要定义一个接口,也就是MBean接口,如下:

 

 

 一、JMX简介

  什么是JMX?在一篇网文中是这样说的:"JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理",这句话我现在看着还是不知所云,云里雾里。

  我们还是从JMX能给我们提供什么好处入手来理解吧。举一个应用实例:在一个系统中常常会有一些配置信息,比如服务的IP地址,端口号什么的,那么如何来写这些代码呢?

   1. 程序初哥一般是写死在程序里,到要改变时就去改程序,然后再编译发布;
   2. 程序熟手则一般把这些信息写在一个配置文件里(JAVA一般都是*.properties文件),到要改变时只要改配置文件,但还是重新启动系统,以便读取配置文件里的新值;
   3. 程序好手则会写一个段代码,把配置值缓存起来,系统在读值的时候,先看看配置文件有没有更动。如有更改则重读一遍,否则从缓存里读取值
   4. 程序高手则懂得取物为我所用,用JMX!把配置属性集中在一个类,然后写一个叫MBean的东东,再配置一下就轻松搞定了。而且JMX自动提供了一个WEB页面来给你来改变这些配置信息。

二、准备工作


  JMX是一份规范,SUN依据这个规范在JDK(1.3、1.4、5.0)提供了JMX接口。而根据这个接口的实现则有很多种,比如Weblogic的JMX实现、MX4J、JBoss的JMX实现。在SUN自己也实现了一份,不过在JDK1.4之前,这件JMX实现(一些JAR包)是可选的,你得去它的网站上下载。JDK5.0则内嵌了进来,安装JDK5.0就可以开发基于JMX的代码了。
  但JDK5.0并非包含所有SUN的关于JMX的代码,有一些工具类是排除在JDK5.0之外的。下面根据所使用的JDK版本情况,谈一谈开发环境的准备。
1、JDK1.3、1.4
  去SUN网站下载SUN的JMX实现,共两个ZIP文件,下载网址:http://java.sun.com/products/JavaManagement/download.html。
(1)jmx-1_2_1-ri.zip
   解压后的lib目录包含:jmxri.jar、jmxtools.jar
(2)jmx_remote-1_0_1_03-ri.zip
   解压后的lib目录包含:jmxremote.jar、jmxremote_optional.jar、rmissl.jar
  如果在DOS下用命令行开发,则把这五个JAR包加入到classpath系统变量中。如果你用Eclipse开发,则把JAR包加入到项目属性的Libratries(库)引用中。
2、JDK5.0
  JDK5.0的jre\lib\rt.jar已经包含了jmxri.jar、jmxremote.jar、rmissl.jar三个包的代码。如果你用到jmxtools.jar、jmxremote_optional.jar的类,则需要将这两个类加入到classpath或 Eclipse的项目库引用中。
3、我使用的开发环境:JDK5.0 + Eclipse3.2。
  注:因为用到jmxtools.jar中的HtmlAdaptorServer类,所以将此包加入到项目库引用中。jmxremote_optional.jar暂时不用到,不管它。


 

 

http://mavlarn.iteye.com/blog/1485677

 

分享到:
评论

相关推荐

    比较全面的:Jakarta-commons jar包(附: chm参考手册 & 资源简介)

    资源简介 Jakarta commons docs API CHM 格式带索引和全文搜索,方便携带和查询。 Jakarta commons 包含很多可复用的通用组件。 commons-attributes 让开发者可以使用 C# 或 .net 样式的 attributes, 是一种运行时...

    Java管理扩展指南之MBean简介

    MBean是一个被管理的Java对象,就像Javabean组件一样,但是它遵从JMX规范的设计模式。MBean可以表示设备、应用或者任何需要被管理的资源。MBeans暴露如下管理接口:1.一组可读和可写属性,或者两者兼而有之。2.一组...

    Java SE实践教程 pdf格式电子书 下载(一) 更新

    Java SE实践教程 pdf格式电子书 下载(一) 更新 http://download.csdn.net/source/2824033 Java SE实践教程 pdf格式电子书 下载(二) 更新 http://download.csdn.net/source/2824040 Java SE实践教程 pdf格式...

    ofbiz综合技术文档

    技术文档 5 第一部分、ofbiz表现 5 一、理解MVC模式 5 1、MVC理论描述 5 2、系统设计 6 3、OFBiz中MVC模式体现 7 二、JPublish合成表示层 8 1、经典的合成器--JPublish 8 ...第十三部分:JMX的用法 106

    Hbase+Spring boot实战分布式文件存储

    实战开发通过jmx获取HBase运行时数据,监控集群状态 5-1 HBase备份与恢复 5-2 HBase监控简介 5-3 Hadoop JMX监控实战 5-4 HBase JMX监控实战 第6章 Phoenix & Sqoop 对HBase业务应用过程中常用到的第三方开源工具...

    吴天雄--Spring笔记.doc

    第一天内容:Spring框架简介(EJB、JMX、Spring核心功能、Spring模块详解、Spring重要概念(容器)、Spring容器初始化的整个流程、Spring后处理器),IOC详解,Spring环境搭建,Spring创建Bean的三种方式,scope属性...

    JAVA上百实例源码以及开源项目

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往...

    Spring 2.0 开发参考手册

    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. 更加...

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

    20.1 jmx简介 156 20.2 jmx api 157 20.2.1 MBeanServer 157 20.2.2 ObjectName 157 20.3 Standard MBeans 158 20.4 Model MBeans 159 20.4.1 MBeanInfo与ModelMBeanInfo 160 20.4.2 ModelMBean实例 161 20.5 ...

    how-tomcat-works

    20.1 jmx简介 156 20.2 jmx api 157 20.2.1 MBeanServer 157 20.2.2 ObjectName 157 20.3 Standard MBeans 158 20.4 Model MBeans 159 20.4.1 MBeanInfo与ModelMBeanInfo 160 20.4.2 ModelMBean实例 161 20.5 ...

    spring chm文档

    2.6.2. JMX 2.6.3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 2.7.1. 一些变化 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. 控制反转容器 3.1. 简介 3.2. 容器和bean的基本...

    Spring API

    2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3...

    Spring中文帮助文档

    2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 ...

    Java SE实践教程 pdf格式电子书 下载(四) 更新

    Java SE实践教程 pdf格式电子书 下载(一) 更新 http://download.csdn.net/source/2824033 Java SE实践教程 pdf格式电子书 下载(二) 更新 http://download.csdn.net/source/2824040 Java SE实践教程 pdf格式...

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

    2.6.2. JMX 2.6 .3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 2.7.1. 一些变化 2.7.1.1. Jar包 2.7.1.2. XML配置 2.7.1.3. Deprecated的类和方法 2.7.1.4. Apache OJB 2.7.1.5. iBatis 2.8....

    Java SE实践教程 源代码 下载

    内容简介:此书结合具体实例讲解,通俗易懂,又不乏深度。我觉得这本书写的确实不错,堪称经典,市面上这样的书实在太少了,所以在这里发布下,供大家共享。本书从编程技术、项目实践以及软件工程的角度出发,如果...

    Hibernate实战(第2版 中文高清版)

     2.4.3 JMX服务部署   2.5 小结   第3章 领域模型和元数据   3.1 CaveatEmptor应用程序   3.1.1 分析业务领域   3.1.2 CaveatEmptor领域模型   3.2 实现领域模型   3.2.1 处理关注点渗漏   3.2.2 ...

    JAVA上百实例源码以及开源项目源代码

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!...

    BEA WebLogic Server管理指南

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

    Spring攻略PDF版

    因为上传大小的限制,分为两部分上传,这是第二部分,第一部分会在评论中给出链接 绝对是spring攻略中文版第二版 ... 第18章 Spring对JMX、电子邮件和调度的支持   第19章 Spring中的脚本编程 

Global site tag (gtag.js) - Google Analytics