- 浏览: 7331646 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在网上看到JMX可以监控JBOSS,TOMCat,WebLogic等服务器主机的各种信息,所以学习一下JMX的。
采用模型MBean开发JMX。
首先开发对应相关的JMX模型bean类对象
package com.easyway.apache.moduler.jmx; /** * 备注此处的JMX没有实现相关的XxxMBean的接口 * @author longgangbai * */ public interface IEasywayService { public abstract void printHello(); public abstract void printHello(String whoName); }
package com.easyway.apache.moduler.jmx; /** * 备注此处的JMX没有实现相关的XxxMBean的接口 * @author longgangbai * */ public class EasywayService implements IEasywayService { private String serviceName; public String getServiceName() { return serviceName; } public void setServiceName(String serviceName) { this.serviceName = serviceName; } /* (non-Javadoc) * @see com.easyway.apache.moduler.jmx.IEasywayService#printHello() */ public void printHello() { System.out.println("Hello World, " + serviceName); } /* (non-Javadoc) * @see com.easyway.apache.moduler.jmx.IEasywayService#printHello(java.lang.String) */ public void printHello(String whoName) { System.out.println("Hello , " + serviceName); } }
创建构建模型MBean对象
package com.easyway.apache.moduler.jmx; import javax.management.MBeanOperationInfo; import javax.management.MBeanParameterInfo; import javax.management.modelmbean.ModelMBeanAttributeInfo; import javax.management.modelmbean.ModelMBeanInfo; import javax.management.modelmbean.ModelMBeanInfoSupport; import javax.management.modelmbean.ModelMBeanOperationInfo; import javax.management.modelmbean.RequiredModelMBean; /** * 创建ModelBean的各种信息 * @author longgangbai * * */ public class ModelMBeanUtils { private static final boolean READABLE = true; private static final boolean WRITABLE = true; private static final boolean BOOLEAN = true; private static final String STRING_CLASS = "java.lang.String"; /** * * @return */ public static RequiredModelMBean createModlerMBean() { RequiredModelMBean model = null; try { model = new RequiredModelMBean(); //注入相关的服务类 model.setManagedResource(new EasywayService(), "ObjectReference"); ModelMBeanInfo info = createModelMBeanInfo(); model.setModelMBeanInfo(info); } catch (Exception e) { e.printStackTrace(); } return model; } /** * 创建ModelBean的过程 * @return */ private static ModelMBeanInfo createModelMBeanInfo() { ////////////////////////////////////////////////////////////////// // 属性 // ////////////////////////////////////////////////////////////////// // 构造name属性信息 ModelMBeanAttributeInfo nameAttrInfo = new ModelMBeanAttributeInfo(// "Name", // 属性名 STRING_CLASS, //属性类型 "people name", // 描述文字 READABLE, WRITABLE, !BOOLEAN, // 读写 null // 属性描述子 ); ////////////////////////////////////////////////////////////////// // 方法 // ////////////////////////////////////////////////////////////////// //构造 printHello()操作的信息 ModelMBeanOperationInfo print1Info = new ModelMBeanOperationInfo(// "printHello", // null, // null, // "void", // MBeanOperationInfo.INFO, // null // ); // 构造printHello(String whoName)操作信息 ModelMBeanOperationInfo print2Info; MBeanParameterInfo[] param2 = new MBeanParameterInfo[1]; param2[0] = new MBeanParameterInfo("whoName", STRING_CLASS, "say hello to who"); print2Info = new ModelMBeanOperationInfo(// "printHello", // null,// param2,// "void", // MBeanOperationInfo.INFO, // null// ); ////////////////////////////////////////////////////////////////// // 最后总合 // ////////////////////////////////////////////////////////////////// // create ModelMBeanInfo ModelMBeanInfo mbeanInfo = new ModelMBeanInfoSupport(// RequiredModelMBean.class.getName(), // MBean类 null, // 描述文字 new ModelMBeanAttributeInfo[] { // 所有的属性信息(数组) nameAttrInfo },//只有一个属性 null, // 所有的构造函数信息 new ModelMBeanOperationInfo[] { // 所有的操作信息(数组) print1Info, print2Info },// null, // 所有的通知信息(本例无) null//MBean描述子 ); return mbeanInfo; } }
创建JMX中模型MBean的Agent代理对象
package com.easyway.apache.moduler.jmx; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.ObjectName; import javax.management.modelmbean.RequiredModelMBean; import com.sun.jdmk.comm.HtmlAdaptorServer; /** * JMX代理测试ModelBean的应用 * @author longgangbai * * 备注: * 模型Mbean(Model MBean):动态可以配置 * 动态bean * 标准MBean(standard mbean): * */ public class EasywayServiceModelBeanAgent { public static void main(String[] args) throws Exception { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName helloName = new ObjectName("easyway:name=HelloWorld"); //获取测试bean的信息 RequiredModelMBean hello = ModelMBeanUtils.createModlerMBean(); //注册MBean对象 server.registerMBean(hello, helloName); //获取对象的 ObjectName adapterName = new ObjectName("EasywayServiceModelBeanAgent:name=htmladapter,port=8082"); HtmlAdaptorServer adapter = new HtmlAdaptorServer(); //注册 server.registerMBean(adapter, adapterName); adapter.start(); System.out.println("start....."); } }
发表评论
-
【转】Django resources
2014-01-23 14:35 10805Django resources This page li ... -
使用国内镜像源来加速python pypi包的安装
2014-01-16 11:16 197806pipy国内镜像目前有: http://pypi.d ... -
[转 ]vagrant使用简介
2014-01-10 13:53 257311> 简介: vagrant提供了易于配置,重复性 ... -
[转]在Java中调用Python
2014-01-07 13:08 9211在执行之前都需要把jython对应的包加载进去,这个是必须的 ... -
[转]Eclipse配置PyDev插件
2014-01-02 14:25 2834安装python解释器 安装PyDev: 首 ... -
RestFuse的研究(五) Http请求的封装
2014-06-14 15:50 3625在RestFuse中封装了Http请 ... -
RestFuse的研究(四) Junit的Statement的分析
2013-12-06 11:46 1667在RestFuse提供了多种单 ... -
RestFuse的研究(三) Junit的Rule的使用和分析
2013-12-06 11:01 2234在junit中定义一些可以公用的规则(R ... -
RestFuse的研究(二) Junit的Runner的分类和模式
2013-12-06 10:40 1599在Junit4中的调用JunitCore可以采 ... -
RestFuse的研究(一) HttpJunitRunner的实现
2013-12-06 10:11 1743在RestFuse是一种针对Rest We ... -
[转]An open-source JUnit extension to test HTTP/REST APIs
2013-12-06 09:57 1099http://developer.eclipsesource ... -
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3353TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51575文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 14176最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8688TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2711TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2805TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2450TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2779TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2698TestNG官方网站: http://testng.or ...
相关推荐
总之,JMX与AMX的结合为Java开发者提供了一套强大而灵活的工具集,使得在复杂的企业级应用中实施管理和监控策略变得既简单又高效。无论是对于应用的日常运维还是故障排查,JMX和AMX都扮演着不可或缺的角色。
MBean分为标准MBean、动态MBean、开放MBean和模型MBean等不同类型,它们分别适用于不同的监控和管理场景。 JMX技术的另一个重要概念是通知。通知是JMX框架用来实现异步通信的一种机制。当MBean的某个属性发生变化,...
接着,书中的章节详细讲述了如何创建自定义MBean,包括标准MBean、开放MBean和模型MBean的不同类型,以及它们的注册和管理过程。此外,书中还讨论了MBean服务器的选择和配置,如内置MBean服务器和远程MBean服务器的...
在实际应用中,JMX常用于监控复杂的系统和服务,如Spring框架就利用JMX暴露其内部管理接口。例如,你可以通过JMX监控和调整Spring应用上下文中的bean。 **5. 结论** JMX为Java开发者提供了一种强大且灵活的工具,...
JMX是Java平台的标准接口,通过它可以管理运行中的Java应用程序。它提供了一种灵活的模型来表示管理对象(MBeans),这些对象可以代表任何可管理的实体,如系统资源、服务状态或应用程序性能指标。JMX还定义了管理...
在本项目中,"jmx监控weblogic,tomcat,websphere源码"涉及了使用JMX来监控三个主流的Java应用服务器:WebLogic、Tomcat和WebSphere。这些服务器都是企业级应用部署的常见选择,对它们的监控对于确保系统性能、稳定性...
本文档详细阐述了JMX在实际应用中的作用,特别是MX4J在分布式应用监控中的实现方法。 ### 1.2 关键词 JMX,MX4J,分布式监控,管理框架,MBean ### 1.3 参考资料 - Oracle官方JMX文档 - MX4J项目官方网站 - Java...
JMX 提供了一种框架和API来监控和管理运行时的应用程序,使得开发者可以轻松地添加管理功能到他们的应用中。 **什么是MBean?** MBean(Managed Bean)是JMX的核心概念,它代表了一个可管理的资源,通常是一个Java...
接下来,我们将深入探讨JMX的核心概念、MBean的类型以及如何在实际应用中使用JMX。 首先,MBean是JMX的核心组件,它是被管理的Java对象。根据不同的需求和复杂性,MBean可以分为三种类型: 1. Standard MBeans:这...
**标题解析:** "JMX HelloWorld Download" 指的是一个关于Java Management Extensions(JMX)的简单示例,可能是用于教学或演示如何在Java应用中使用JMX技术。"Download"表明这是一个可以下载的资源,可能包含了...
同时,JMX API提供了客户端和服务器端的实现,方便开发者集成到自己的应用中。 8. **应用场景**:JMX常用于服务器监控、性能分析、日志管理、配置管理等方面。例如,Web服务器、数据库服务器、EJB容器等都可以通过...
通过这些源码,读者可以深入学习JMX的实际应用,了解如何在实际项目中使用JMX来提升系统的可管理性和可维护性。然而,由于技术的更新迭代,部分源码可能已不适用于最新的Java版本,因此在实践中需要注意兼容性问题,...
JMX,全称为Java管理扩展(Java Management Extensions),是一套用于管理Java应用程序的开放标准和API,它允许开发...通过本规范的学习,开发者可以更好地理解和应用JMX,从而在维护和管理Java应用时更加得心应手。
MBean可以是标准MBean、模型MBean或开放MBean,它们通过实现特定接口或使用特定注解来暴露其属性、操作和通知。 - **MBean Server**:MBean Server是JMX架构的核心,负责管理MBean的生命周期,包括创建、注册、查找...
通过 JMX 1.4 规范的学习,开发者不仅可以更好地理解和应用 JMX 技术,还可以将其应用于实际项目中,实现对 Java 应用程序和系统的有效监控与管理。随着 JMX 技术的发展,未来的版本可能会提供更多强大的功能,帮助...
Java Management Extensions(JMX)是...例如,Spring框架提供了对JMX的集成支持,简化了在Spring应用中使用JMX的复杂性。总的来说,JMX因其灵活性、标准化和广泛的生态系统支持,成为了Java环境中不可或缺的管理工具。
在实际应用中,JMX客户端(如管理工具)可以通过JMX连接器(JMX Connector)与服务器端建立连接,访问和操作MBean,实现对Java应用程序的远程监控和管理。例如,JConsole和VisualVM提供了图形化的界面,用户可以直观...
1. **MBeans**:MBeans是JMX的核心,可以是标准MBean、开放MBean或模型MBean,它们提供了管理接口。 2. **MBean服务器**:所有MBeans都存在于MBean服务器中,这是一个容器,负责MBean的生命周期管理。 3. **JMX...
学习JMX有助于开发者在遇到性能问题时进行诊断,或者在生产环境中实施自动化运维策略。例如,你可以使用JMX监控内存使用情况、线程状态,甚至触发某些操作,如重启服务或更新配置。 总的来说,JMX是一个强大的工具...
JMX技术已经广泛应用于各种Java应用服务器和中间件产品中,例如JBoss、Tomcat以及Sun的Java系统管理工具等,它们提供了内置的JMX支持,方便用户进行各种管理操作。 总之,JMX作为一种现代的、强大的网络管理技术,...