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


执行如图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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


改动变量值:






运行改动:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


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

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



java之JMX的更多相关文章

  1. 杂项-Java:JMX

    ylbtech-杂项-Java:JMX 1.返回顶部 1. JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架.JMX可 ...

  2. Java之JMX 详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt194 一.JMX简介 JMX是一种JAVA的正式规范,它主要目的是让程序有被 ...

  3. [转]Java之JMX 详解

    一.JMX简介 JMX是一种JAVA的正式规范,它主要目的是让程序有被管理的功能,那么怎么理解所谓的“被管理”呢?试想你开发了一个软件(如WEB网站),它是在24小时不间断运行的,那么你可能会想要“监 ...

  4. 【JAVA】JMX简单使用方法

    [BEAN] 配置   <!-- JMX 对应的接口服务--> <bean id="emailInterfaceServer" class="com.s ...

  5. java 通过jmx获取active mq队列消息

    一.修改active mq配置文件 修改\conf\activemq.xml,带下划线部分 <!-- Licensed to the Apache Software Foundation (AS ...

  6. Zabbix 通过 JMX 监控 java 进程

    参考: [ JMX monitoring ] [ Zabbix Java gateway ] [ JMX Monitoring (Java Gateway) not Working ] [ Monit ...

  7. 使用JMX Exporter监控Rainbond上的Java应用

    场景 Prometheus 社区开发了 JMX Exporter 用于导出 JVM 的监控指标,以便使用 Prometheus 来采集监控数据.当您的 Java 应用部署在Rainbond上后 可通过 ...

  8. JMX示例

    HelloJMXMBean.java package jmx; /** * Created by george on 14-8-21. */ public interface HelloJMXMBea ...

  9. JVM Input Arguments Lookup (JMX)(转)

    JVM Input Arguments Lookup (JMX) Maps JVM input arguments -- but not main arguments -- using JMX to ...

随机推荐

  1. A list is a sequence

    Like a string, a list is a sequence of values. In a string, the values are characters; in a list, th ...

  2. spring context对象

    在 java 中, 常见的 Context 有很多, 像: ServletContext, ActionContext, ServletActionContext, ApplicationContex ...

  3. 24 款必备的 Linux 桌面应用(2016 版)

    作者: Munif Tanjim 译者: LCTT GHLandy | 2016-12-21 08:41   评论: 41 收藏: 13 摘要:Linux 的必备软件有哪些?这将会是一个非常主观的回答 ...

  4. java反射与多态(父类调用子类)的代码演示

    package Test0817; import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method ...

  5. P3066 [USACO12DEC]逃跑的BarnRunning Away From… 树上差分_树上倍增

    code: #include <cstdio> using namespace std; #define ll long long const int N=200005; int n,fa ...

  6. 洛谷2850 【Usaco2006 Dec】虫洞Wormholes SPFA

    问题描述 John在他的农场中闲逛时发现了许多虫洞.虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前).John的每个农场有M条小路(无向边)连接着N (从1..N ...

  7. 记intel杯比赛中各种bug与debug【其一】:安装intel caffe

    因为intel杯创新软件比赛过程中,并没有任何记录.现在用一点时间把全过程重演一次用作记录. 学习 pytorch 一段时间后,intel比赛突然不让用 pytoch 了,于是打算转战intel ca ...

  8. tab.py

    vim tab.py #!/usr/bin/env python # #Tab import sys import readline import rlcompleter import atexit ...

  9. 关于Github Pages

    迁移Github Pages 我稍微有一点强迫症,实在是忍受不了整洁的界面有一些推广的广告.正所谓博客平台不重要,重要的是要有干货,CSDN首页满屏的广告也就忍受了,但是自己的文章的页面有广告看着实在 ...

  10. [问题]HDOJ1032 The 3n + 1 problem

    http://acm.hdu.edu.cn/showproblem.php? pid=1032 这题能够用暴力求解.求出在[ni,nj]之间全部数字产生的最大值. 通过观察能够知道,当nk靠近nj的时 ...