1,概念:一个可以使用JMX管理器来管理的Java对象称为JMX管理资源(JMX manageable resource)。事实上,一个JMX管理资源也可以是一个应用程序、一个实现或者一个服务、设备、用户等等。JMX管理资源用Java写或者提供一个Java包装。
要想让一个Java对象称为JMX管理资源,必须创建另一个名为Managed Bean或者MBean的对象。org.apache.catalina.mbeans包包括一些MBeans。ConnectorMBean, StandardEngineMBean, StandardHostMBean, StandardContextMBean是Managed Bean的例子。从他们的名字你可以猜到ConnectMBean用于管理连接器,StandardContextMBean用于管理org.apache.catalina.core.StandardContext对象等等。当然,你也可以编写MBean管理多个Java对象。 MBean将Java对象的属性和方法暴露给管理应用程序(management application)。管理应用程序本身不能直接访问Java对象。因此可以选择任意的属性和方法让管理应用程序访问。

一共有四种MBean:标准standard,动态dynamic, 打开open, 和模型model,从结构上来看,JMX规范分为3层,设备层(instrumentation level),代理层(agent level),和分布服务层(distributed services level)。MBean服务器处于代理层,而MBeans处于设备层。分布服务层将会在JMX规范的未来版本涉及到。

2.标准MBean是最简单的MBean。要是用标准MBean管理一个Java对象,需要以下工作:
· 创建一个接口,名为你的类名加上后缀MBean。例如,如果要管理的Java类是Car,接口名酒味CarMBean。

· 修改Java类,让它实现你创建的接口。

· 创建一个代理,该代理必须包括一个MBean服务器。

· 为你的MBean创建一个ObjectName。

· 初始化MBean服务器。

· 向MBean服务器注册MBean。

package ex20.pyrmont.standardmbeantest;public class Car {
private String color = "red";
public String getColor() {return color;
}
public void setColor(String color) {
this.color = color;
}
public void drive() {System.out.println("Baby you can drive my car.");}
}

//1: The modified Car class package ex20.pyrmont.standardmbeantest; public class Car implements CarMBean {private String color = "red";public String getColor() {
return color;}
public void setColor(String color) {this.color = color;} 

public void drive() {
System.out.println("Baby you can drive my car.");}
}

//2: The CarMBean interface
package ex20.pyrmont.standardmbeantest;
public interface CarMBean {
public String getColor();
public void setColor(String color);
public void drive();
}

//3: The StandardAgent class
package ex20.pyrmont.standardmbeantest;
import javax.management.Attribute;
import javax.management.ObjectName;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
public class StandardAgent {private MBeanServer mBeanServer = null;
public StandardAgent() {
mBeanServer = MBeanServerFactory.createMBeanServer();
} public MBeanServer getMBeanServer() {
return mBeanServer;
} public ObjectName createObjectName(String name) {
ObjectName objectName = null;
try { objectName = new ObjectName(name);} catch (Exception e) {
}
return objectName;
}private void createStandardBean(ObjectName objectName, String managedResourceClassName) {try {
mBeanServer.createMBean(managedResourceClassName, objectName);} catch(Exception e) {
}} public static void main(String[] args) {StandardAgent agent = new StandardAgent();
MBeanServer mBeanServer = agent.getMBeanServer();String domain = mBeanServer.getDefaultDomain();String managedResourceClassName = "ex20.pyrmont.standardmbeantest.Car";
ObjectName objectName = agent.createObjectName(domain + ":type=" + managedResourceClassName);
agent.createStandardBean(objectName, managedResourceClassName);// manage MBeantry {Attribute colorAttribute = new Attribute("Color","blue"); mBeanServer.setAttribute(objectName, colorAttribute); System.out.println(mBeanServer.getAttribute(objectName, "Color"));
mBeanServer.invoke(objectName,"drive",null,null);
} catch (Exception e) {e.printStackTrace();
}
}
}

如果运行StandardAgent类,会得到以下输出。

blue

Baby you can drive my car.

转载于:https://www.cnblogs.com/davidwang456/p/3253626.html

Java Management extentsions(jmx)与tomcat相关推荐

  1. java applet运行jmx,通过tomcat设置jvm及添加jmx远程访问、gc输出日志

    设置jmx远程监控 在tomcat_home/bin/catalina.sh 文件开头添加此信息 CATALINA_OPTS='-Dcom.sun.management.jmxremote -Dcom ...

  2. Zabbix(四)zabbix使用JMX监控tomcat(java类应用)

    一.zabbix使用JMX监控tomcat(java类应用) (一)在server2上操作(agent端) 1.将jdk和tomcat上传到server2(从官网上下载,此处我已经直接下载到了我的物理 ...

  3. 【最小demo】JMX (Java Management Extensions)演示最小Demo

    参考 JMX超详细解读 https://www.cnblogs.com/dongguacai/p/5900507.html JMX(Java Management Extensions)是一个为应用程 ...

  4. JMX 使用指南一 Java Management Extensions

    1. 什么是 JMX JMX,全称 Java Management Extensions,是在 J2SE 5.0 版本中引入的一个功能.提供了一种在运行时动态管理资源的框架,主要用于企业应用程序中实现 ...

  5. zabbix之通过jmx监控tomcat

    zabbix监控tomcat 1.编译zabbix的时候需要添加参数--enable-java 关于如何安装zabbix,可以参考上一篇文章http://blog.unix178.com/ 备份zab ...

  6. Zabbix JMX之tomcat监控

    工作原理: 1.JAVA-GATEWAY  Zabbix本身不支持直接监控Java,在zabbix 1.8以前,只能使用Zapcat来做代理监控,而且要修改源代码,非常麻烦.所有后来为了解决这个监控问 ...

  7. linux tomcat6 jmx,Zabbix3.2.6之通过JMX监控Tomcat

    JMX的全称是Java Management Extensions,即Java管理扩展.Java程序会开放一些端口,用来获取运行状况.在Zabbix 1.8以前,只能使用Zapcat来监控JMX,并需 ...

  8. zabbix JMX监控Tomcat及错误解决方法

    1.修改zabbix_java相关选项 [root@zabbix-16 zabbix]# cd /usr/local/sbin/zabbix_java [root@zabbix-16 zabbix_j ...

  9. Zabbix3.2.6之通过JMX监控Tomcat

    参考博文:https://blog.51cto.com/wzlinux/1692444 JMX的全称是Java Management Extensions,即Java管理扩展.Java程序会开放一些端 ...

最新文章

  1. Go 学习笔记(17)— 函数(03)[defer 定义、defer 特点、defer 释放资源]
  2. java向某一IP发送消息_javaTCP如何将数据发送给指定IP的客户端(求代码)谢谢! 爱问知识人...
  3. “造车时代”多方笃定小米造车,网络营销外包专员如何看待这一波营销?
  4. java snack_JSONPath小试牛刀之Snack3
  5. 拉格朗日插值法(Lagrange)
  6. PHP怎么检查登录和退出,如何检查用户是否以PHP登录?
  7. [css] 你所理解的css高级技巧有哪些?
  8. 微信更新对html影响,微信再次大更新 将极大影响用户使用习惯
  9. python标准库模块教程_Python标准库之Sys模块使用详解
  10. 浏览器如何解析HTML文档
  11. POJ2806 Square
  12. 【求助】想知道Xcode怎么像devc一样调试程序
  13. 微信公众号应用开发(一)
  14. Jquery获取所有子元素
  15. 仿真Windows_XP画图板的java实现
  16. 任正非,马云,马化腾:真正顶级厉害的人,都有一个共同特点
  17. 2016计算机技术操作考试题,2016年计算机二级《VB》上机操作题(1)
  18. 云免停机卡免流服务器监控
  19. 《真·三国无双ADVANCE》攻略
  20. 正在移除icloud数据久_数据集中存储、安全备份好帮手,上德数据天忆宝盒PDP-SA104 NAS...

热门文章

  1. java 宕机监控_JAVA实现监测tomcat是否宕机及控制重启的方法
  2. 如何扩大临linux零时空间,手把手教你如何扩充linux系统空间
  3. 长春8中2021年高考 成绩查询,长春八中2018高考喜报成绩、本科重本上线人数情况...
  4. linux自动对齐命令,linux查看硬盘4K对齐方法
  5. python 东八区
  6. 23. Leetcode 86. 分隔链表 (链表-基础操作类-分隔链表)
  7. 13. Leetcode 349. 两个数组的交集 (数组-分离双指针)
  8. 不用任何比较判断找出两个数中较大的数
  9. 机器学习笔记: attention
  10. pytorch笔记:torch.nn.MaxPool2d