`
wanjianfei
  • 浏览: 323784 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JMX 开发必备

    博客分类:
  • J2EE
阅读更多

先看下一些基本的东西然后运行代码对jmx有些基本了解,然后看JMX规范
基本概念:
1:MBean
通常是一个java类,它提供接口可以使这个类具有管理功能(如standard MBean,接口中定义的方法使MBean具有管理功能)。
2:MBean server
是 管理MBean的一个java类,你需要向MBean server注册一个MBean后,这个MBean才会具有管理功能,MBean server还提供了查询功能和注册监听器的功能,sun提供的只是接口,不同的jmx实现中的MBean server实现也不同。
3:JMX agent
agent 是为了管理一系列的MBean,而提供的一系列的服务,如上图所示,通常有MBean relationships, dynamically loading classes, simple monitoring services, timers。agent可以利用Protocol adapters(例如HTTP 和SNMP)和connectors(RMI 和Jini)使不同的客户端可以访问MBean。
4:Protocol adapters 和connectors
适 配器和连接器主要使不同的协议和客户端可以使用这个agent,一个agent中可以有多个Protocol adapters 和connectors,这样管理起MBean来就更方便了(有多种类型的客户端和协议可以操作MBean)。注意,Protocol adapters 和connectors通常也是MBean。
JMX1.1相对于1.0有了很大改进,在1.1中提供4种类型的MBean,3,4两种MBean都是特殊类型的dynamic MBean。
1:standard MBean
2:dynamic MBean
3:open MBean
4:model MBean

Standard MBean编程简介
运行环境:
首先去sun下载两个压缩包http://java.sun.com/products/JavaManagement/download.html
1、jmx-1_2_1-bin
2、jmxremote-1_0_1-bin
以下程序只需要jmx-1_2_1-bin包里面的lib/*.jar
注意:jmx和jmxremote是两个不同的包。

下面就来编写几个程序:
1:编写接口
2:编写MBean
3:编写agent
下面看接口的代码,very easy,主要定义get/get方法和其它你想使用的方法
public interface HelloWorldMBean
{
public void setGreeting( String greeting );

public String getGreeting();

public void printGreeting();
}

再看MBean的代码,跟传统的Bean非常相似,加入某个属性只有get方法,则说明这个属性是只读的,get/set都有的话,说明这个属性是可读可写的,此MBean只定义了一个属性 greeting。另外还定义了一个方法printGreeting。
public class HelloWorld implements HelloWorldMBean
{

private String greeting = null;

public HelloWorld()
{
this.greeting = "Hello World! I am a Standard MBean";
}

public HelloWorld( String greeting )
{
this.greeting = greeting;
}

public void setGreeting( String greeting )
{
this.greeting = greeting;
}

public String getGreeting()
{
return greeting;
}

public void printGreeting()
{
System.out.println( greeting );
}
}

下面编写agent
1:创建 MBeanServer
2:创建一个adapter
3:将MBean注册到MBeanServer,同时将apapter也注册到MBeanServer
4: 启动adapter
import javax.management.*;
import com.sun.jdmk.comm.*;
public class HelloAgent
{
private MBeanServer mbs = null;
public HelloAgent()
{
mbs = MBeanServerFactory.createMBeanServer( "HelloAgent" );
HtmlAdaptorServer adapter = new HtmlAdaptorServer();
HelloWorld hw = new HelloWorld();
ObjectName adapterName = null;
ObjectName helloWorldName = null;

try
{
helloWorldName = new ObjectName( "HelloAgent:name=helloWorld1" );
mbs.registerMBean( hw, helloWorldName );
adapterName = new ObjectName( "HelloAgent:name=htmladapter,port=9092" );
adapter.setPort( 9092 );
mbs.registerMBean( adapter, adapterName );
adapter.start();
}
catch( Exception e )
{
e.printStackTrace();
}
}
public static void main( String args[] )
{
System.out.println( "HelloAgent is running" );
HelloAgent agent = new HelloAgent();
}
}
上 面的代码使用了sun的一个adapter:HtmlAdaptorServer,使得html客户端可以访问MBean,注意ObjectName类, 它的书写规则是这样的:"Domain names:key=value,key2=value2",因为createMBeanServer方法中我们使用了参数"HelloAgent",因 此后面的Domain names必须为HelloAgent。

运行:
我一开始运行的时候遇到了一些问题,在这里就说一下。
1、编译是必不可少的。
我们需要上面提到的jmx-1_2_1-bin里面的两个jar文件。将他们放到classpath中。
2、运行
只需要运行HelloAgent.class就行了。同样需要那两个jar文件。缺少的话会报错。
3、通过浏览器访问http://localhost:9092即可。

分享到:
评论

相关推荐

    最简单JMX例子

    对于初学者,这个"最简单JMX例子"将展示如何创建一个简单的MBean,如何在Eclipse这样的集成开发环境中配置和运行,以及如何通过标准的JMX客户端工具进行交互。通过学习这个例子,你可以理解JMX的基本结构和用法,为...

    apache-tomcat-9.0.62.zip下载安装java开发必备,稳定

    综上所述,Apache Tomcat 9.0.62作为Java开发必备的工具,其稳定性、易用性和灵活性使其成为开发和部署Java Web应用的首选平台。了解并熟练掌握Tomcat的使用和配置,对于Java开发者来说至关重要。

    log4j依赖的包(jms-1.1.jar+jmxri-1.2.1.jar+jmxtools-1.2.1.jar)

    在Java开发领域,日志管理是至关重要的,它帮助开发者追踪程序运行时的状态,记录错误信息,便于问题排查。...因此,熟悉这些库文件的作用,以及它们与Log4j的集成方式,是每个Java开发者必备的技能之一。

    lo4j2数据开发必备帮你规避不必要的线上bug

    8. **动态配置**:Log4j2支持运行时动态调整配置,可以通过JMX(Java Management Extensions)或者API来实现,无需重启应用即可更改日志设置。 9. **性能优化**:合理配置Log4j2可以帮助优化性能,例如,减少不必要...

    终极高手必备-阿里Java开发手册

    《阿里巴巴Java开发手册》是Java开发者的一份重要参考资料,它由阿里巴巴集团的众多技术专家共同编纂而成,旨在规范和提升Java开发的标准化水平。这份手册涵盖了从基础语法到最佳实践的广泛内容,旨在帮助开发者编写...

    Tomcat与Java.Web开发技术详解(PDF)

    10. **故障排查**:了解如何通过查看服务器日志、使用JMX管理工具和分析线程Dump来定位和解决Tomcat中的问题,是每个开发者必备的技能。 综上所述,“Tomcat与Java.Web开发技术详解”将深入讲解这些关键概念,提供...

    后端必备+服务器网络编程指南

    《后端必备+服务器网络编程指南》是一本针对后端工程师深入学习服务器网络编程和性能调优的专业书籍。它涵盖了从基础知识到高级实践的广泛内容,旨在帮助读者全面提升在这一领域的技能。 首先,我们来探讨“后端”...

    Java高手真经 高级编程篇 下载(三)

    谢谢大家的支持,我会陆续上传相关电子书 ...无论对于Java软件设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书适合作为Java相关培训机构的教材,也可作为Java自学人员的参考手册。

    JAVA核心知识点整理、面试必备

    学习JVM内存模型(堆、栈、方法区等),类加载机制,以及如何通过JMX、JConsole、VisualVM等工具进行性能监控和调优。 6. **Java并发编程**: 除了多线程,还包括线程池的使用(ExecutorService,...

    Android ppt

    在【描述】中提到,“做手机移动开发必备”,意味着这份PPT资料将涵盖Android开发的基础知识,如Activity生命周期、Intent机制、布局管理、数据存储、网络请求、多媒体处理、权限管理等方面。同时,也可能涉及到更...

    Java高手真经 高级编程篇 part1/7

    本书讲解Java Web开发中的高级开发技术,包括企业级...无论对于Java软件设计还是软件开发,本书都是精通开发Java Web应用的必备的实用手册。  本书适合作为Java相关培训机构的教材,也可作为Java自学人员的参考手册。

    tomcat7.0 Javaweb必备

    它是JavaWeb开发者的必备工具,尤其对于初学者来说,它的简单性和易用性使其成为学习Web应用服务的首选。 【JavaServlets】 JavaServlet是一种Java编程语言编写的服务器端程序,主要功能在于交互式地处理客户端请求...

    tomcat 开发程序

    此外,利用JMX(Java Management Extensions)进行远程监控和管理也是必备技能。 10. **使用Tomcat管理工具** Tomcat提供了一个名为`manager`的小应用,通过Web界面可以管理应用的部署、启动、停止和卸载。理解其...

    SSH三大框架 整合必备jar包

    - **spring-jmx.jar**: JMX监控的支持。 每个JAR包都有其特定的功能和用途,比如`spring-context.jar`提供了对Spring上下文的支持,包括事务管理、消息源和国际化支持等功能;而`spring-jdbc.jar`则是为了方便使用...

    阿里巴巴开发手册

    这份手册覆盖了从基本编码规范到高级设计原则的诸多方面,是Java开发者进阶必备的知识库。 一、编码规范 1. 命名规范:手册详细规定了类、方法、变量的命名规则,强调使用有意义的英文单词或词组,避免使用缩写,...

    loadrunner监控linux必备插件

    在IT性能测试领域,LoadRunner是一款非常知名的负载和性能测试工具,由HP(现称HPE)开发。本文将深入探讨如何使用LoadRunner监控Linux环境,以及在这个过程中必不可少的插件。 首先,LoadRunner的核心在于它的虚拟...

    Java_JDK主线开发.zip

    7. **Java性能优化**:通过JDK提供的JMX(Java Management Extensions)和JProfiler等工具,开发者可以监控和优化应用程序的性能,例如调整JVM参数以改善内存使用或提升程序运行速度。 8. **异常处理**:Java的异常...

    tomcat6.0 javaweb编程必备

    综上所述,“Tomcat 6.0 javaweb编程必备”意味着我们需要深入学习Tomcat的配置、管理以及JavaWeb的Servlet、JSP等核心技术。通过不断实践和探索,才能在这个充满挑战和机遇的领域中游刃有余。记得,阅读“说明_...

    JAVA面试必备必知必会

    Java面试必备必知必会,这是每个Java开发者在求职或者职业发展中都需要面对的主题。Java面试通常涵盖以下几个核心领域:Java基础、集合框架、多线程并发以及虚拟机(JVM)知识。以下将对这些关键知识点进行详细阐述...

    WebSphere开发指南

    9. **故障排查与日志分析**:掌握如何阅读和分析WebSphere的日志文件,以及如何使用IBM Support Assistant等工具进行问题诊断,是每个WebSphere开发者必备的技能。 10. **持续集成与自动化部署**:随着DevOps的普及...

Global site tag (gtag.js) - Google Analytics