`
JackyCheng2007
  • 浏览: 253315 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java Management Extensions (JMX) 学习笔记- 程序管理和监控

阅读更多
在学习Tomcat 7 的源代码的时候发现,大量运用到了JMX, MBeans,所以决定先学习一下。
介绍
JMX是Java 5开始引入的API。这个API意在帮助管理和监控资源: applications, devices, services, and the Java virtual machine. 你可以用JMX API来:
  •     查询和修改应用配置
  •     应用行为统计
  •     状态改变和出错通知

你也可以远程的访问JVM,从而远程管理和监控。
MBean, managed bean,受管的bean
Mbean其实也是一种Java Bean,特别之处就在于它是在管理之下的。所谓受管就是说它提供了读写的API。有四种MBean:standard MBeans, dynamic MBeans, open MBeans and model MBeans. 下面是一个standard MBeans的例子:
先定义接口:
package com.example.mbeans; 
 
public interface HelloMBean { 
 
    public void sayHello(); 
    public int add(int x, int y); 
 
    public String getName(); 
 
    public int getCacheSize(); 
    public void setCacheSize(int size); 
} 

再定义实现:
package com.example.mbeans; 
 
public class Hello implements HelloMBean { 
    public void sayHello() { 
        System.out.println("hello, world"); 
    } 
 
    public int add(int x, int y) { 
        return x + y; 
    } 
 
    public String getName() { 
        return this.name; 
    } 
 
 
    public int getCacheSize() { 
        return this.cacheSize; 
    } 
 
    public synchronized void setCacheSize(int size) { 
        this.cacheSize = size; 
 
        System.out.println("Cache size now " + this.cacheSize); 
    } 
 
    private final String name = "Reginald"; 
    private int cacheSize = DEFAULT_CACHE_SIZE; 
    private static final int DEFAULT_CACHE_SIZE = 200; 
} 

JMX agent, MBean server
MBean是通过注册在JMX agent,也就是 MBean server中,从而被暴露出去而被管理的。
下面是这个agent 的使用实例:
package com.example.mbeans; 
 
import java.lang.management.*; 
import javax.management.*; 
 
public class Main { 
 
   public static void main(String[] args) throws Exception { 
 
      MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); 
 
      ObjectName name = new ObjectName("com.example.mbeans:type=Hello"); 
 
      Hello mbean = new Hello(); 
 
      mbs.registerMBean(mbean, name); 
 
      System.out.println("Waiting forever..."); 
      Thread.sleep(Long.MAX_VALUE); 
   } 
} 


运行Main类,之后它就等待被访问和修改。你可以用jconsole去尝试查询和修改。



控制台输出:

Waiting forever...
hello, world
Cache size now 300
hello, world



  • 大小: 58.8 KB
分享到:
评论
4 楼 daxiaoli123 2014-05-11  
请问还有后续的吗  这个是最基础的啊
3 楼 fujuya 2012-11-08  
mark
2 楼 JackyCheng2007 2012-04-09  
共同学习,互相切磋
1 楼 stormhouse 2012-04-09  
写的很精练易懂啊,最也在看tomcat代码,我看的是6版本的,向您学习啊

相关推荐

    Java分布式应用学习笔记09JMX-MBean的介绍

    ### Java分布式应用学习笔记09JMX-MBean的介绍 #### MBean概念及作用 MBean,即Managed Bean,是在JMX(Java Management Extensions)框架中用于管理资源的一种特殊Java对象。通过MBean,可以方便地对应用程序进行...

    Java分布式应用学习笔记08JMX规范与各种监控场景.pdf

    Java Management Extensions (JMX) 是Java平台上的一个标准,它定义了一种管理和监控Java应用程序的机制。JMX规范允许开发者创建可管理的组件,并通过管理系统(如JConsole)进行监控和控制。这些组件称为MBeans...

    Java JDK 6学习笔记.zip

    8. **Java Management Extensions (JMX)**:增强了JMX,使得监控和管理Java应用更加容易。 9. **Java Development Kit Tools**:包括Javadoc、javac编译器和jdb调试器等工具都进行了升级,提高了开发效率。 10. **...

    java学习笔记JDK6课件和课本代码

    JMX(Java Management Extensions)的改进也使得应用程序管理和监控更为高效。 总的来说,这个压缩包提供了一个全面的Java学习路径,从基础到进阶,理论与实践相结合。无论你是初入编程的新人还是希望深入JDK6的...

    JAVA JDK6 学习笔记

    7. **Java Management Extensions (JMX)**:JMX在Java 6中得到了强化,使得管理系统资源和服务变得更加容易,可以远程监控和管理Java应用程序。 8. **改进的垃圾收集**:JDK6改进了垃圾收集机制,特别是并行垃圾...

    Java学习笔记JDK6课件和课本代码

    JMX(Java Management Extensions)在JDK 6中也有所改进,使得管理系统资源和监控应用程序变得更加容易。开发者可以通过JMX创建、注册和管理MBeans(管理beans),实现对应用程序的远程监控和管理。 在国际化方面,...

    Java JDK 6学习笔记PPT版

    最后,JDK 6还引入了一些工具和API的改进,如JConsole性能监控工具,JMX(Java Management Extensions)的增强,以及Javadoc的新选项,这些都为开发者提供了更强大的开发和调试环境。 总之,Java JDK 6学习笔记PPT...

    J2EE学习笔记(J2ee初学者必备手册)

    10. **Java Management Extensions (JMX)**:JMX用于监控和管理Java应用程序,提供了创建、注册和管理管理对象的框架。 11. **Application Servers**:了解常用的Java EE应用服务器,如Apache Tomcat、WildFly和...

    Java JDK 6学习笔记——ppt简体版

    JDK 6引入了JSR 47,即Java Management Extensions (JMX)的日志服务API,允许开发者更加灵活地管理和配置日志。 11. **国际化和本地化** 支持更多的字符集和语言,增强了对Unicode的处理,使得应用程序能更好地...

    Oracle_DBA_java.rar_oracle_oracle 笔记

    - 性能监控:通过Java的JMX(Java Management Extensions)监控数据库连接池和SQL执行情况。 综上所述,Oracle DBA和Java的知识体系是相辅相成的,一个优秀的数据库管理员不仅需要精通Oracle的管理,还需要对Java...

    java学习笔记

    4. 类库支持:Java 提供了丰富的标准类库,如JNI(Java Native Interface)允许Java代码与本地代码交互,JMX(Java Management Extensions)用于管理和监控应用程序,JNDI(Java Naming and Directory Interface)...

    weblogic 学习 笔记 ppt

    - **JMX(Java Management Extensions)**:WebLogic使用JMX来监控服务器的性能指标,如CPU使用率、内存消耗等。 - **日志和诊断**:通过日志记录和诊断收集,可以分析和解决运行时问题。 6. **WebLogic集群与高...

    tomcat源码分析

    Java Management Extensions (JMX) 提供了一种管理和监控Java应用程序的标准框架。在Tomcat中,JMX用于监控和管理服务器状态,如线程池、内存使用情况、MBean服务器等。通过JMX,开发者可以远程操作Tomcat,进行...

    j2ee精华学习笔记

    12. **JMX(Java Management Extensions)** JMX提供了一套管理框架,可以监控和管理运行中的J2EE应用和服务。 13. **安全管理** J2EE提供了基于角色的访问控制(RBAC)、容器管理的安全性和编程模型安全,确保...

    spring2.0学习笔记

    9. **JMX(Java Management Extensions)支持**:Spring 2.0支持JMX,允许应用程序暴露管理接口,方便系统监控和管理。 10. **测试工具**:Spring 2.0包含了JUnit和Mockito等测试工具的集成,有助于进行单元测试和...

    Jboss_ESB学习笔记

    7.2 监控工具:如JMX(Java Management Extensions)用于实时查看服务器状态和性能指标。 八、安全性与事务管理 8.1 安全性:支持基本认证、SSL加密、角色基访问控制等,确保服务的安全通信。 8.2 事务管理:确保...

    JBOSS7学习笔记

    11. **JMX监控**:通过Java Management Extensions (JMX),开发者可以监控和管理服务器的各个组件,包括内存使用、线程状态等。 12. **日志管理**:JBoss7使用Log4j2作为默认的日志管理系统,提供灵活的日志配置和...

    JVM性能学习笔记思维导图

    - **JMX**:Java Management Extensions,允许远程监控和管理JVM。 - **JFR (Java Flight Recorder)** 和 **JMC (Java Mission Control)**:Oracle提供的高级诊断和分析工具,适用于复杂的性能问题排查。 5. **...

Global site tag (gtag.js) - Google Analytics