Java Management extentsions(jmx)与tomcat
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相关推荐
- java applet运行jmx,通过tomcat设置jvm及添加jmx远程访问、gc输出日志
设置jmx远程监控 在tomcat_home/bin/catalina.sh 文件开头添加此信息 CATALINA_OPTS='-Dcom.sun.management.jmxremote -Dcom ...
- Zabbix(四)zabbix使用JMX监控tomcat(java类应用)
一.zabbix使用JMX监控tomcat(java类应用) (一)在server2上操作(agent端) 1.将jdk和tomcat上传到server2(从官网上下载,此处我已经直接下载到了我的物理 ...
- 【最小demo】JMX (Java Management Extensions)演示最小Demo
参考 JMX超详细解读 https://www.cnblogs.com/dongguacai/p/5900507.html JMX(Java Management Extensions)是一个为应用程 ...
- JMX 使用指南一 Java Management Extensions
1. 什么是 JMX JMX,全称 Java Management Extensions,是在 J2SE 5.0 版本中引入的一个功能.提供了一种在运行时动态管理资源的框架,主要用于企业应用程序中实现 ...
- zabbix之通过jmx监控tomcat
zabbix监控tomcat 1.编译zabbix的时候需要添加参数--enable-java 关于如何安装zabbix,可以参考上一篇文章http://blog.unix178.com/ 备份zab ...
- Zabbix JMX之tomcat监控
工作原理: 1.JAVA-GATEWAY Zabbix本身不支持直接监控Java,在zabbix 1.8以前,只能使用Zapcat来做代理监控,而且要修改源代码,非常麻烦.所有后来为了解决这个监控问 ...
- linux tomcat6 jmx,Zabbix3.2.6之通过JMX监控Tomcat
JMX的全称是Java Management Extensions,即Java管理扩展.Java程序会开放一些端口,用来获取运行状况.在Zabbix 1.8以前,只能使用Zapcat来监控JMX,并需 ...
- zabbix JMX监控Tomcat及错误解决方法
1.修改zabbix_java相关选项 [root@zabbix-16 zabbix]# cd /usr/local/sbin/zabbix_java [root@zabbix-16 zabbix_j ...
- Zabbix3.2.6之通过JMX监控Tomcat
参考博文:https://blog.51cto.com/wzlinux/1692444 JMX的全称是Java Management Extensions,即Java管理扩展.Java程序会开放一些端 ...
最新文章
- Go 学习笔记(17)— 函数(03)[defer 定义、defer 特点、defer 释放资源]
- java向某一IP发送消息_javaTCP如何将数据发送给指定IP的客户端(求代码)谢谢! 爱问知识人...
- “造车时代”多方笃定小米造车,网络营销外包专员如何看待这一波营销?
- java snack_JSONPath小试牛刀之Snack3
- 拉格朗日插值法(Lagrange)
- PHP怎么检查登录和退出,如何检查用户是否以PHP登录?
- [css] 你所理解的css高级技巧有哪些?
- 微信更新对html影响,微信再次大更新 将极大影响用户使用习惯
- python标准库模块教程_Python标准库之Sys模块使用详解
- 浏览器如何解析HTML文档
- POJ2806 Square
- 【求助】想知道Xcode怎么像devc一样调试程序
- 微信公众号应用开发(一)
- Jquery获取所有子元素
- 仿真Windows_XP画图板的java实现
- 任正非,马云,马化腾:真正顶级厉害的人,都有一个共同特点
- 2016计算机技术操作考试题,2016年计算机二级《VB》上机操作题(1)
- 云免停机卡免流服务器监控
- 《真·三国无双ADVANCE》攻略
- 正在移除icloud数据久_数据集中存储、安全备份好帮手,上德数据天忆宝盒PDP-SA104 NAS...
热门文章
- java 宕机监控_JAVA实现监测tomcat是否宕机及控制重启的方法
- 如何扩大临linux零时空间,手把手教你如何扩充linux系统空间
- 长春8中2021年高考 成绩查询,长春八中2018高考喜报成绩、本科重本上线人数情况...
- linux自动对齐命令,linux查看硬盘4K对齐方法
- python 东八区
- 23. Leetcode 86. 分隔链表 (链表-基础操作类-分隔链表)
- 13. Leetcode 349. 两个数组的交集 (数组-分离双指针)
- 不用任何比较判断找出两个数中较大的数
- 机器学习笔记: attention
- pytorch笔记:torch.nn.MaxPool2d