`
minghaitang
  • 浏览: 128073 次
社区版块
存档分类
最新评论

JMX MBeans之一Standard MBean

阅读更多

JMX MBeans之一Standard MBean
这种类型的MBean最简单,它能管理的资源(包括属性,方法,时间)必须定义在接口中,然后MBean必须实现这个接口。而且这个MBean实现类中,必须至少有一个public的构造函数。
而且类中的getter和setter函数必须遵守命名标准。
类的命名也必须遵循一定的规范,例如我们的MBean为Hello,则接口必须为HelloMBean,而且是大小写敏感的。如果不这么做,可能会有javax.management.NotCompliantMBeanException抛出。
接口为:

public interface HelloWorldMBean
{
  public void setGreeting( String greeting );
  public String getGreeting();
  public void printGreeting();
}

MBean的类实现它:

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,同时将adapter也注册到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,位于com.sun.jdmk.comm包中,
使得html客户端可以管理MBean server。
注意ObjectName类,这个class为MBean提供命名系统,为注册在MBean server中的每个MBean提供唯一的标识。它的书写规则是这样的:"A Domain name:key=value,key2=value2",每个名字包括两个部分:
A Domain name--这个名字通常是这个MBean所要注册的MBeanServer的domain name.如果不是的话,往往都是为了将之与其它的MBeans分开所致.
key=value--属性名称/值对,用来唯一的标识一个MBean,经常也用来提供Mbean的信息,常用的有name,port值,location,purpose等等。
因为createMBeanServer方法中我们使用了参数"HelloAgent",因此后面的Domain names必须为HelloAgent。
运行将jmx的包放到classpath中,运行HelloAgent类,然后通过浏览器访问http://localhost:9092即可。

 

分享到:
评论

相关推荐

    jmx 实例 rmi mbean

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备等资源。它提供了一种灵活的框架,允许开发者创建、注册和管理名为Managed Beans(MBeans)的对象,这些...

    JMX实用例子详解(包括各种Mbean)

    Java Management Extensions(JMX)是Java平台上的一个标准管理框架,它允许开发人员创建、注册和管理名为MBeans(Managed Beans)的对象,这些对象代表了系统、应用程序或服务的可管理资源。通过JMX,我们可以远程...

    customFuse:通用 JMX Mbeans 的 JON Fuse 插件扩展

    "customFuse" 是一个专为 JON (JBoss Operations Network) 设计的 Fuse 插件扩展,其主要目标是提供对通用 JMX(Java Management Extensions)MBeans(Managed Beans)的支持。MBeans 是 JMX 架构中的核心组件,用于...

    《jmx技术介绍》配套源代码

    JMX架构由管理代理(MBeans)、服务提供者接口(MBean Server)和管理客户端三部分组成。MBeans代表可管理的对象,它们可以是简单的数据点或复杂的系统服务。MBean Server是一个运行在Java虚拟机中的核心组件,它...

    jmx例子一则

    MBeans有三种类型:Standard MBean、Dynamic MBean和Open MBean,分别对应不同的定义和实现方式。 其次,JMX中的代理(MBeanServer)是管理的核心组件。它负责注册和管理MBeans,执行MBean的操作,并处理MBean之间...

    jmx需要的jar包

    JMX支持三种类型的MBeans:Standard MBean、Dynamic MBean和Open MBean。 2. **MBean Server**:MBean Server是JMX架构中的核心组件,它负责注册MBeans、执行MBean操作、处理MBean之间的交互,并提供了一个集中式的...

    jmx_examples.rar_Java 8_jmx_jmx examples_jmx main_jmx_examples

    - 压缩包中的例子可能包括创建不同类型的MBean(Standard MBean、Dynamic MBean等)、注册MBean到MBean Server、暴露和操作MBean属性、执行MBean方法以及处理MBean通知。 - 每个示例通常会展示如何创建一个简单的...

    jmx-jvm配置

    2. **MBean Server**: MBean Server是JMX框架的核心,它负责注册、管理和查询MBeans,以及执行MBean的操作。 3. **Management Interface**: 这是MBean提供的接口,定义了可管理属性、操作和通知。 4. **JMX ...

    JMX 入门 详细 教程

    通过MBeans、MBean Server、Notifications和Management Agents,JMX 创建了一个强大的管理框架,适用于各种规模和类型的Java应用。无论你是初学者还是经验丰富的开发者,理解并掌握JMX都将极大地提升你的应用程序...

    JAVA JMX 学习资料

    MBeans是JMX的核心,分为三种类型:Standard MBeans、Dynamic MBeans和Open MBeans。Standard MBeans通过定义接口和实现类来定义管理接口;Dynamic MBeans可以在运行时动态地定义管理接口;Open MBeans允许更复杂的...

    JMX.rar_jmx

    MBean Server是JMX规范定义的标准组件,每个Java虚拟机(JVM)都可以有一个MBean Server。 - **MBean Server代理**(MBeanServerDelegate):提供关于MBean Server本身的信息,如版本和实现信息。 - **通知**:...

    JMX、MXBean学习

    Standard MBeans是预定义了管理接口的类,Dynamic MBeans则可以在运行时动态定义其管理接口,而Model MBeans是一种抽象层,可以将任何Java对象转换为MBean。 MXBean是JMX中的一个特殊概念,它是标准MBean的扩展,...

    JMX in Action

    根据功能不同,MBeans分为三种类型:简单MBean(Standard MBeans)、动态MBeans(Dynamic MBeans)和开放MBeans(Open MBeans)。 1. **简单MBeans**:是最基本的形式,直接将Java类与MBean接口关联起来,方便快捷...

    JMX配置与使用

    Java Management Extensions(JMX)是Java平台上的一个标准,它提供了管理和监视应用程序、服务、硬件设备等资源的能力。JMX允许开发人员创建可管理和监视的组件,并将它们集成到Java应用中。以下是对JMX配置与使用...

    JMX初学资料 初学者入门教程

    最后,JMX代理则作为一个桥梁,连接MBean服务器和外部管理系统,使得远程管理成为可能。 接下来,我们探讨MBean的类型。MBean主要有三种:Standard MBean、Dynamic MBean和Open MBean。Standard MBean通过接口定义...

    JMX IN ACTION(七)

    【JMX IN ACTION(七)】章节探讨了JMX中的Model MBean,这是一种特殊类型的MBean,开发者无需编写MBean类。Model MBean是JMX规范定义的一部分,保证在所有符合JMX标准的代理中可用,它是一个通用的MBean,可以被实例...

    jmx学习整理里1

    为了使用这些MBeans,我们需要一个MBeanServer,它是JMX的核心服务,负责注册MBean、执行MBean的操作和获取MBean的属性。`StandardAgent.java`通常会包含创建和注册MBean到MBeanServer的代码: ```java MBeanServer...

    JMX需要的JAR和文档和可运行的例子

    Standard MBeans是通过特定接口定义的,Dynamic MBeans则在运行时动态定义其属性和操作,而Open MBeans提供了一种通用的方式来表示复杂的数据类型。 在JMX环境中,MBeans通过MBeanServer注册,这是一个核心组件,...

    jmx-1.2.1(jmxri+jmxtools) jar

    Java Management Extensions(JMX)是Java平台上的一个标准,它提供了一种管理和监控应用程序、操作系统、网络设备和其他Java应用程序的方式。这个"jmx-1.2.1(jmxri+jmxtools) jar"包含了JMX的两个核心组件:JMX ...

    jmx简单实例,附带jar包完整项目

    提供的项目应该包含一个简单的JMX应用,展示了如何创建MBean、注册到MBean服务器,以及如何通过JConsole等工具进行远程访问和监控。项目中的"使用说明"将指导你如何运行这个示例,包括导入必要的库,配置MBean ...

Global site tag (gtag.js) - Google Analytics