zoukankan      html  css  js  c++  java
  • java之JMX

    java之JMX 

    有关JMX的定义和架构就不具体解释了。见百度百科:


    http://baike.baidu.com/link?

    url=6QzGGEqphTmpft3ll5mXmDNVRdvLRZhkvGaqAWyO6EliwrHeIwt5bdMd188iMlzylxoxr7gRbtIWn2NQODBLZa


    代码实例:

    与创建一个普通的bean没什么差别:
    package com.doctor.java.jmx;
    
    /**
     * @author sdcuike
     *
     * @time 2016年2月9日 下午9:47:04
     * 
     * @see http://www.journaldev.com/1352/what-is-jmx-mbean-jconsole-tutorial
     *      The interface name must end with MBean
     */
    public interface SystemConfigMBean {
        public void setThreadCount(int noOfThreads);
    
        public int getThreadCount();
    
        public void setSchemaName(String schemaName);
    
        public String getSchemaName();
    
        // any method starting with get and set are considered
        // as attributes getter and setter methods, so I am
        // using do* for operation.
        public String doConfig();
    
    }
    



    package com.doctor.java.jmx;
    
    /**
     * @author sdcuike
     *
     * @time 2016年2月9日 下午9:51:53
     */
    public class SystemConfig implements SystemConfigMBean {
    
        private int threadCount;
        private String schemaName;
    
        public SystemConfig(int threadCount, String schemaName) {
            this.threadCount = threadCount;
            this.schemaName = schemaName;
        }
    
        @Override
        public void setThreadCount(int noOfThreads) {
            this.threadCount = noOfThreads;
    
        }
    
        @Override
        public int getThreadCount() {
            return threadCount;
        }
    
        @Override
        public void setSchemaName(String schemaName) {
            this.schemaName = schemaName;
    
        }
    
        @Override
        public String getSchemaName() {
            return schemaName;
        }
    
        @Override
        public String doConfig() {
            return "No of Threads=" + this.threadCount + " and DB Schema Name=" + this.schemaName;
    
        }
    
    }
    

    然后我们创建一个測试样例:
    package com.doctor.java.jmx;
    
    import java.lang.management.ManagementFactory;
    import java.util.concurrent.TimeUnit;
    
    import javax.management.InstanceAlreadyExistsException;
    import javax.management.MBeanRegistrationException;
    import javax.management.MBeanServer;
    import javax.management.MalformedObjectNameException;
    import javax.management.NotCompliantMBeanException;
    import javax.management.ObjectName;
    
    /**
     * @author sdcuike
     *
     * @time 2016年2月9日 下午9:56:27
     */
    public class SystemConfigManagement {
    
        private static final int DEFAULT_NO_THREADS = 10;
        private static final String DEFAULT_SCHEMA = "default";
    
        public static void main(String[] args) throws MalformedObjectNameException, InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException, InterruptedException {
            // Get the MBean server
            MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
    
            // register the MBean
            SystemConfig systemConfig = new SystemConfig(DEFAULT_NO_THREADS, DEFAULT_SCHEMA);
            ObjectName objectName = new ObjectName("com.doctor.java.jmx:type=SystemConfig");
            mBeanServer.registerMBean(systemConfig, objectName);
    
            do {
                TimeUnit.SECONDS.sleep(3);
                System.out.println("Thread Count=" + systemConfig.getThreadCount() + ":::Schema Name=" + systemConfig.getSchemaName());
            } while (systemConfig.getThreadCount() != 0);
        }
    
    }
    

    执行:

    执行的时候,我们必须启用虚拟机选项-Dcom.sun.management.jmxremote


    执行如图:

    如今我们用java工具jconsole改动变量:


    改动变量值:






    运行改动:


    看看我们执行的程序输出:

    是不是改动后的属性生效了。



  • 相关阅读:
    Jquery 跨域问题
    Linux下scp的用法
    JZ2440_V3_内核驱动程序_点亮一个LED灯
    MATLAB GUIDE 上位机串口通信开发 绘制图形
    关于在DSP工程内数组、strnpy函数、atoi函数的使用心得
    Visio中手绘图形的填充
    Ubuntu16.04NFS配置与ARM开发板互传文件_挂载和卸载
    树莓派压力测试工具STui + Stress的使用
    如何将代码优雅的插入到word中
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7010772.html
Copyright © 2011-2022 走看看