- 浏览: 396392 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
surpassno:
南冠楚囚 写道如果是复制一个一位数组,那么改变复制后的数组并不 ...
java的system.arraycopy()方法 -
南冠楚囚:
如果是复制一个一位数组,那么改变复制后的数组并不影响原数组。你 ...
java的system.arraycopy()方法 -
wxq5513866:
有密码,大家不要下载了,下载也解压不了,别上当了
android中调用webservice -
wxq5513866:
happyhan 写道还要密码啊 能否告知密码
android中调用webservice -
happyhan:
还要密码啊 能否告知密码
android中调用webservice
"JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理"
举一个应用实例:在一个系统中常常会有一些配置信息,比如服务的IP地址,端口号什么的,那么如何来写这些代码呢?
1. 程序初哥一般是写死在程序里,到要改变时就去改程序,然后再编译发布;
2. 程序熟手则一般把这些信息写在一个配置文件里(JAVA一般都是*.properties文件),到要改变时只要改配置文件,但还是重新启动系统,以便读取配置文件里的新值;
3. 程序好手则会写一个段代码,把配置值缓存起来,系统在读值的时候,先看看配置文件有没有更动。如有更改则重读一遍,否则从缓存里读取值
4. 程序高手则懂得取物为我所用,用JMX!把配置属性集中在一个类,然后写一个叫MBean的东东,再配置一下就轻松搞定了。而且JMX自动提供了一个WEB页面来给你来改变这些配置信息。
JMX中MBean有DynamicMBean和StandardMBean两类,前者动态组装一个监控对象,较为复杂,但更为灵活,不需要监控类继承*MBean接口,后者简单。
架构图如下:
1.建立一个需要被JMX管理的类Hello
Java代码
2.建立Hello类的MBean接口,接口名必须是要管理的类名+MBean
Java代码 复制代码
3.创建一个Agent类(通过html-adapter方式)
Java代码 复制代码
说明:
HtmlAdaptorServer在jmxtools.jar包中,需要到SUN网站下载JMX 1.2.1 Reference Implementation
MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心.JMX1.0规范提供一个接口叫 javax.management.MBeanServer. 所有管理的在MBean操作通过MBeanServer执行.使用MBeanServer实例,你能够管理所有MBean.每一个MBean具有一个唯一标志,叫ObjectName.
ObjectName (javax.management.ObjectName)是一个类,唯一标志一个在MBeanServer的MBean.这个对象名称用于管理应用程序来标志MBean以便操作能够在适当的MBean上被调用.一个对象名称包含两部分:域名称和没有经过排序的一个或者多个关键属性集,语法:[domain name]:property=value[,property=value]
AdaptorServer,这个类将决定MBean的管理界面,这里用最普通的Html型界面。AdaptorServer其实也是一个MBean
运行HelloAgent,打开IE输入http://localhost:8091就可以看到注册的MBean,在控制台看printHello的输出结果
3.创建一个Agent类(通过rmi-connector方式)
测试类
举一个应用实例:在一个系统中常常会有一些配置信息,比如服务的IP地址,端口号什么的,那么如何来写这些代码呢?
1. 程序初哥一般是写死在程序里,到要改变时就去改程序,然后再编译发布;
2. 程序熟手则一般把这些信息写在一个配置文件里(JAVA一般都是*.properties文件),到要改变时只要改配置文件,但还是重新启动系统,以便读取配置文件里的新值;
3. 程序好手则会写一个段代码,把配置值缓存起来,系统在读值的时候,先看看配置文件有没有更动。如有更改则重读一遍,否则从缓存里读取值
4. 程序高手则懂得取物为我所用,用JMX!把配置属性集中在一个类,然后写一个叫MBean的东东,再配置一下就轻松搞定了。而且JMX自动提供了一个WEB页面来给你来改变这些配置信息。
JMX中MBean有DynamicMBean和StandardMBean两类,前者动态组装一个监控对象,较为复杂,但更为灵活,不需要监控类继承*MBean接口,后者简单。
架构图如下:
1.建立一个需要被JMX管理的类Hello
Java代码
package bcndly.test.jmx; public class Hello implements HelloMBean { private String name; public String getName() { return name; } public void printHello() { System.out.println("Hello, " + name); } public void printHello(String theName) { System.out.println("Hello, " + theName); } public void setName(String name) { this.name = name; } }
2.建立Hello类的MBean接口,接口名必须是要管理的类名+MBean
Java代码 复制代码
package bcndly.test.jmx; public interface HelloMBean { public String getName(); public void setName(String name); public void printHello(); public void printHello(String theName); }
3.创建一个Agent类(通过html-adapter方式)
Java代码 复制代码
package bcndly.test.jmx; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.ObjectName; import com.sun.jdmk.comm.HtmlAdaptorServer; public class HelloAgent { public static void main(String[] args) throws Exception { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName helloName = new ObjectName("bcndyl:name=HelloWorld"); server.registerMBean(new Hello(), helloName); ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8091"); HtmlAdaptorServer adapter = new HtmlAdaptorServer(); adapter.setPort(8091); server.registerMBean(adapter, adapterName); adapter.start(); System.out.println("start....."); } }
说明:
HtmlAdaptorServer在jmxtools.jar包中,需要到SUN网站下载JMX 1.2.1 Reference Implementation
MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心.JMX1.0规范提供一个接口叫 javax.management.MBeanServer. 所有管理的在MBean操作通过MBeanServer执行.使用MBeanServer实例,你能够管理所有MBean.每一个MBean具有一个唯一标志,叫ObjectName.
ObjectName (javax.management.ObjectName)是一个类,唯一标志一个在MBeanServer的MBean.这个对象名称用于管理应用程序来标志MBean以便操作能够在适当的MBean上被调用.一个对象名称包含两部分:域名称和没有经过排序的一个或者多个关键属性集,语法:[domain name]:property=value[,property=value]
AdaptorServer,这个类将决定MBean的管理界面,这里用最普通的Html型界面。AdaptorServer其实也是一个MBean
运行HelloAgent,打开IE输入http://localhost:8091就可以看到注册的MBean,在控制台看printHello的输出结果
3.创建一个Agent类(通过rmi-connector方式)
public class HelloAgent { public static void main(String[] args) throws Exception { MBeanServer mbs = MBeanServerFactory.createMBeanServer("RMIAgent"); RmiConnectorServer connector = new RmiConnectorServer(); ObjectName connectorName = null; try { connectorName = new ObjectName("RMIAgent:name=RMIConnector"); mbs.registerMBean(connector, connectorName); Hello hello = new Hello(); ObjectName testMBeanName = new ObjectName("RMIAgent:name=Hello"); mbs.registerMBean(hello, testMBeanName); connector.start(); } catch (Exception e) { e.printStackTrace(); } } } }
测试类
public class RMIManager { public static void main(String[] args) { RmiConnectorClient client = new RmiConnectorClient(); RmiConnectorAddress address = new RmiConnectorAddress(); [color=orange]try { client.connect(address); ObjectName testMBeanName = ObjectName.getInstance("RMIAgent:name=testMBean"); client.invoke(testMBeanName, "fun", null, null); client.setAttribute(testMBeanName, new Attribute("Field", new String( "hello JMX from manager!"))); System.out.println(client.invoke(testMBeanName, "fun", null, null)); } catch (Exception e) { e.printStackTrace(); } finally { }[/color] } }
发表评论
-
RMI介绍
2012-05-18 09:55 1083Java RMI (Remote Method Invocat ... -
java多线程文件下载
2012-03-08 20:03 24941、DownloadManager类 import java. ... -
java异常处理
2011-11-30 15:27 992public class test { /** ... -
快排和插入排序
2011-10-20 17:08 1150public class CombineQuickSortIn ... -
java NIO
2011-10-09 19:22 1466一、NIO的出现 NIO是JDK1.4里面才出 ... -
java 远程通信协议
2011-10-09 16:55 1589Java 远程通讯可选技术及原理 在分布式服务框架中,一个最基 ... -
system.exit
2011-09-29 17:00 1026System.exit()用来结束当前运行的java虚拟机,参 ... -
java 文件读取方法
2011-09-27 14:50 12501、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文 ... -
timestamp时间戳
2011-09-05 09:51 1236timestamp是一种时间类型 精度很高,比datetim ... -
java 动态代理类的实现,原理及应用
2011-09-03 11:02 2216在目前的Java开发包中包含了对动态代理的支持,但是其实现只支 ... -
java annotation 介绍
2011-09-02 11:03 982元数据的作用 如果要 ... -
java 反射
2011-08-20 11:27 801JAVA语言中的反射机制: 在Java 运行时 环境中 ... -
junit使用
2011-08-05 16:41 1172测试分类:白箱测试、黑箱测试、单元测试、集成测试、功能测试.. ... -
ThreadLocal 知识
2011-08-05 13:58 870ThreadLocal是什么 早在JD ... -
httpclient 介绍
2011-07-28 09:33 10781.HttpClient简介 HttpCl ... -
java解析xml的四种方法
2011-07-13 22:52 14841. DOM(Document Object Model) ... -
xml字符串转化为规则格式的xml字符串
2011-07-13 18:53 1399import java.io.ByteAr ... -
java中的参数传递
2011-07-13 10:48 992面试题:当一个对象被当 ... -
StringUtils的实用方法
2011-07-13 10:16 1708tringUtils 方法的操作对象是 java.lang. ... -
java dom解析xml
2011-07-08 16:56 1274一、前言 用Java解析XML文档,最常用的有两种方 ...
相关推荐
jmx的简单介绍和使用,包含一些简单的代码示例,看完基本能了解jmx并使用。
**JMX介绍** JMX为Java应用提供了管理和监控的框架,允许开发者创建、注册和管理MBeans(Managed Beans),这些对象代表了应用的组件或服务。MBeans可以是简单的数据结构,也可以包含操作和通知,使得开发者能够远程...
《JMX技术介绍》一书显然是为了深入探讨这一技术而编写的,配套源代码则提供了实践示例,帮助读者更好地理解和应用JMX。 1. JMX架构: JMX架构由管理代理(MBeans)、服务提供者接口(MBean Server)和管理客户端...
Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备。它提供了一种统一的方式来创建、配置、查询和管理Java应用中的资源。本篇文章将深入探讨JMX的核心概念...
书中不仅有对于基础知识的介绍,还有对于JMX开发中重大的体系架构问题的深入探讨,总结了大量JMX开发中的设计模式,并讨论了框架、安全性与性能等等。书中提供了几个典型的例子,兼顾各种开发平台,这些例子的代码...
JMX(Java Management Extensions)是一种Java平台上的管理框架,它提供了一种标准的方式来管理和监控应用程序、设备和服务。JMX的核心概念包括MBean(Management Bean)、MBean服务器和管理接口。 **概述** JMX是...
Java Management Extensions (JMX) 是一个Java平台的标准,它提供了管理和监控Java应用程序和服务的能力。JMX规范定义了一种架构和一组API,使得开发者能够轻松地创建可管理的组件,并允许系统管理员通过统一的方式...
书中首先介绍了JMX的基本概念,包括MBean(管理bean)、MBean服务器、代理和通知等核心元素,以及它们在JMX架构中的作用。MBean是JMX的核心,它代表了可以被管理的资源或服务,而MBean服务器则作为运行这些MBean的...
本文将详细介绍如何使用 JMX 监控 TongWeb7。 首先,要开启 JMX 监控,我们需要查看 TongWeb 的 `server.log` 文件,从中获取 JMX 的连接 URL。例如,在提供的日志中,我们可以看到一个示例 URL:“service:jmx:rmi...
下面我们将详细介绍几个关键点: 1. **JMX与Spring 结合实例**:在Spring应用中,可以通过配置或者编程方式来注册MBeans(Managed Beans),这些MBeans代表了应用中的特定组件或服务。Spring 提供了`...
这篇博客文章(可以通过给定的链接访问)可能是介绍JMX基础知识的一个很好的起点。虽然具体的博客内容未在描述中给出,但我们可以根据JMX的一般知识来探讨其关键概念和用法。 首先,JMX的核心组成部分包括MBeans...
**描述解析:** 描述部分为空,但根据标题推测,这可能是一个简单的教程,通过“Hello World”这个经典的编程范例,介绍如何使用JMX来监控和管理Java应用程序。通常,"Hello World"程序会展示最基本的功能,以便初学...
在JMX的组织结构中,各个章节详细介绍了JMX的不同方面,包括设备层、代理层和远程API规范,涵盖了从MBean的设计、开发、监控、定时、安全到远程访问的各个方面,为理解和实现JMX提供了详细的指导。 需要特别注意的...
Java Management Extensions (JMX) 是Java平台上的一个标准技术...尽管描述中提到“介绍没用”,但了解JMX、JMS以及它们如何通过`jmxtools.jar` 和 `jmxri.jar` 实现是至关重要的,这对于理解和利用这些资源至关重要。
本文详细介绍了如何使用JMX进行网络管理的实际操作过程,包括创建Mlet配置文件、创建MBeanServer、调用MBean的方法等。此外,还介绍了几种不同的JMX实现以及如何使用Timer MBean。这些知识对于理解JMX的工作原理及其...
在本场景中,我们将介绍如何使用RMI(Remote Method Invocation)连接方式来实现JMX框架的各层级的连接。 MBean是JMX框架的基本组件,用于提供管理信息和功能。MBean可以是任何Java对象,只要它实现了相关的接口。...
下面我们将详细介绍如何使用jmx实现远程连接tomcat。 一、配置环境 首先,我们需要确保Linux下配置好Java环境,即配置好tomcat和jdk,并且能启动tomcat。这是因为jmx需要依赖Java环境来运行。 二、配置tomcat 在...
1. **JMX介绍** - **JMX层级**:包括Instrumentation层、Agent层、Distributed Services层以及JMX组件概述。 - **JBoss JMX实现架构**:详细介绍了JBoss如何利用JMX来实现其微内核架构。 2. **JBoss类加载器架构*...
**概述**:本章节主要介绍了JMX(Java Management Extensions)在资源管理中的作用及其实现方式。JMX是一种标准的技术框架,用于管理和监控应用程序、设备和其他资源。 **详细解释**: - **JMX的基本概念**:JMX由...
本教程通过一个简单的“Hello World”示例介绍了JMX的基本用法。通过JMX,我们可以轻松地在Java应用程序中集成管理和监控的功能,这对于提高应用的可管理性和可维护性具有重要意义。希望本文能够帮助读者更好地理解...