`
m635674608
  • 浏览: 5032176 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java之JMX

    博客分类:
  • java
 
阅读更多

[动态修改程序的配置的思想值得学习!] 

 

一、JMX简介

  JMX是一种JAVA的正式规范,它主要目的是让程序有被管理的功能,那么怎么理解所谓的“被管理”呢?试想你开发了一个软件(如WEB网站),它是在24小时不间断运行的,那么你可能会想要“监控”这个软件的运行情况,比如收到了多少数据,有多少人登录等等。或者你又想“配置”这个软件,比如现在访问人数比较多,你想把数据连接池设置得大一些。

  当然,你也许会专门为这些管理来开发软件,但如果你借助JMX,则会发现创建这样的管理程序是如此简单。因为你无需为管理程序来开发界面,已经有通用的JMX管理软件,如MC4J,或者是用一般都附带提供的HTML网页来管理,你要做的仅仅是将自己要被管理和监控类的按照JMX规范修改一下即可。

  中间件软件WebLogic的管理页面就是基于JMX开发的,而JBoss则整个系统都基于JMX构架。

 

二、准备工作
  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暂时不用到,不管它。

三、HelloWorld实例
1、Hello是一个需要被管理的类(普通类)

复制代码
/**
 * 
@author ChenGang 2005-12-3
 
*/
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);
    }
}          
复制代码

 


2、要管理Hello则必须创建一个相应MBean,如下:

复制代码
/**
 * 
@author ChenGang 2005-12-3
 
*/
public interface HelloMBean {
    
public String getName();
    
public void setName(String name);
    
public void printHello();
    
public void printHello(String whoName);

复制代码

 

                 
说明:包含在MBean中方法都将是可以被管理的。MBean起名是有规范的,就是原类名后加上MBean字样。
 
3、创建一个Agent类

 

复制代码
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.....");

    }

复制代码

 


说明:

    * 先创建了一个MBeanServer,用来做MBean的容器
    * 将Hello这个类注入到MBeanServer中,注入需要创建一个ObjectName类
    * 创建一个AdaptorServer,这个类将决定MBean的管理界面,这里用最普通的Html型界面。AdaptorServer其实也是一个MBean。
    * chengang:name=HelloWorld的名字是有一定规则的,格式为:“域名:name=MBean名称”,域名和MBean名称都可以任意取。

4、运行HelloAgent,然后打开网页:http://localhost:8082/ , 单击“name=HelloWorld”链接进入。

 

 

转自:http://www.blogjava.net/hengheng123456789/articles/65690.html

分享到:
评论

相关推荐

    java jmx agent不安全的配置漏洞如何改进(由浅入深代码范例和详细说明).docx

    Java JMX Agent 不安全的配置漏洞如何改进 Java JMX(Java Management Extensions)是一种用于监控和管理应用程序的工具,通过使用 JMX Agent,我们可以暴露应用程序的管理和监控接口,从而允许外部管理应用程序的...

    Java 版jmx 监控中间件weblogic

    Java版 jmx 监控weblogic 生成html

    java jmx agent不安全的配置漏洞.md

    java jmx agent不安全的配置漏洞

    java jmx操作示例源码

    Java JMX(Java Management Extensions,Java管理扩展)是一种标准,用于在Java应用程序中实现管理和监控。JMX允许开发者创建、注册和管理MBeans(Managed Beans),这些MBeans代表了应用程序中的可管理资源,如系统...

    JAVA JMX 学习资料

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、系统和服务。JMX允许开发者创建可管理的组件,这些组件可以暴露其状态、性能指标和操作,以便于通过管理工具进行监控和配置...

    Java And JMX - Building Manageable Systems.rar

    You will find this book to be useful long after new versions of JMX become available because the concepts introduced here are classic applications of management concepts and technologies to the Java ...

    Zabbix通过JMX方式监控java中间件

    ### Zabbix通过JMX方式监控Java中间件的关键知识点 #### 一、Zabbix与JMX监控简介 **Zabbix**是一款开源的企业级监控工具,它能够监控网络中的各种硬件资源和软件服务的状态,并且提供了丰富的功能,如自动发现、...

    JVM JMX java

    JMX(Java Management Extensions)是Java平台的一部分,用于管理和监控应用程序,包括JVM自身。在这个主题中,我们将深入探讨JVM与JMX在Java环境中的交互以及它们如何增强Java应用的管理和维护能力。 **JVM详解** ...

    Java And JMX - Building Manageable Systems

    Java™ and JMX: Building Manageable Systems By Heather Kreger, Ward Harold, Leigh Williamson Publisher : Addison Wesley Pub Date : December 30, 2002 ISBN : 0-672-32408-3 Pages : 592

    jmx_prometheus_javaagent-0.12.0.jar

    代理Java包,用于生成JVM的健康的数据,jmx_prometheus_javaagent-0.12.0.jar

    JMX配置与使用

    Java Management Extensions (JMX) 是Java平台上的一个标准管理框架,用于监控和管理应用程序、操作系统、网络设备等。它提供了一种标准化的方式来暴露管理和监控功能,使得开发者可以创建可管理和自监控的应用程序...

    jmx_examples.rar_Java 8_jmx_jmx examples_jmx main_jmx_examples

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、服务和设备。JMX允许开发者创建管理接口,以便对运行时的组件进行动态监控和管理。在这个"jmx_examples.rar"压缩包中,包含...

    java of core jmx

    Java核心JMX(Java Management Extensions)是Java平台中用于管理和监控应用程序、系统和服务的重要工具。JMX提供了一种标准的框架,使得开发者可以创建管理接口,以便于远程监控和管理Java应用程序。它允许我们对...

    基于Java+JMX的SNMP数据采集的研究与实现.pdf

    【标题】: "基于Java+JMX的SNMP数据采集的研究与实现" 【描述】: 本研究专注于探讨如何利用Java编程语言与Java Management Extensions (JMX)技术来实现SNMP(Simple Network Management Protocol)数据的采集。SNMP...

    Hbase和Hadoop JMX监控实战

    JMX(Java Management Extensions)是一种Java平台标准,用于管理和监控应用程序。在本实战中,我们将深入探讨如何利用JMX对HBase和Hadoop进行监控,以确保系统的稳定性和性能。 首先,我们需要理解HBase。HBase是...

    Addison Wesley - Java and JMX (2002).chm

    Addison Wesley - Java and JMX (2002).chm

    java jmx 远程监控

    java jmx 远程监控

    基于Java JMX框架的Prometheus指标导出器.zip

    基于Java JMX框架的Prometheus指标导出器 内容概要 本项目是一个基于Java JMX框架的Prometheus指标导出器,旨在通过JMX收集和导出Java应用程序的监控指标,以便Prometheus能够抓取和分析这些数据。项目支持将JMX...

    网络管理之jmx开发实战

    ### 网络管理之JMX开发实战 #### JMX技术概述 JMX(Java Management Extensions)是一种标准的Java技术,用于管理和监控应用程序、设备、系统等资源。它提供了多种方式来管理Java应用,包括使用MBeans(Managed ...

Global site tag (gtag.js) - Google Analytics