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即可。
分享到:
相关推荐
Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备等资源。它提供了一种灵活的框架,允许开发者创建、注册和管理名为Managed Beans(MBeans)的对象,这些...
Java Management Extensions(JMX)是Java平台上的一个标准管理框架,它允许开发人员创建、注册和管理名为MBeans(Managed Beans)的对象,这些对象代表了系统、应用程序或服务的可管理资源。通过JMX,我们可以远程...
"customFuse" 是一个专为 JON (JBoss Operations Network) 设计的 Fuse 插件扩展,其主要目标是提供对通用 JMX(Java Management Extensions)MBeans(Managed Beans)的支持。MBeans 是 JMX 架构中的核心组件,用于...
JMX架构由管理代理(MBeans)、服务提供者接口(MBean Server)和管理客户端三部分组成。MBeans代表可管理的对象,它们可以是简单的数据点或复杂的系统服务。MBean Server是一个运行在Java虚拟机中的核心组件,它...
MBeans有三种类型:Standard MBean、Dynamic MBean和Open MBean,分别对应不同的定义和实现方式。 其次,JMX中的代理(MBeanServer)是管理的核心组件。它负责注册和管理MBeans,执行MBean的操作,并处理MBean之间...
JMX支持三种类型的MBeans:Standard MBean、Dynamic MBean和Open MBean。 2. **MBean Server**:MBean Server是JMX架构中的核心组件,它负责注册MBeans、执行MBean操作、处理MBean之间的交互,并提供了一个集中式的...
- 压缩包中的例子可能包括创建不同类型的MBean(Standard MBean、Dynamic MBean等)、注册MBean到MBean Server、暴露和操作MBean属性、执行MBean方法以及处理MBean通知。 - 每个示例通常会展示如何创建一个简单的...
2. **MBean Server**: MBean Server是JMX框架的核心,它负责注册、管理和查询MBeans,以及执行MBean的操作。 3. **Management Interface**: 这是MBean提供的接口,定义了可管理属性、操作和通知。 4. **JMX ...
通过MBeans、MBean Server、Notifications和Management Agents,JMX 创建了一个强大的管理框架,适用于各种规模和类型的Java应用。无论你是初学者还是经验丰富的开发者,理解并掌握JMX都将极大地提升你的应用程序...
MBeans是JMX的核心,分为三种类型:Standard MBeans、Dynamic MBeans和Open MBeans。Standard MBeans通过定义接口和实现类来定义管理接口;Dynamic MBeans可以在运行时动态地定义管理接口;Open MBeans允许更复杂的...
MBean Server是JMX规范定义的标准组件,每个Java虚拟机(JVM)都可以有一个MBean Server。 - **MBean Server代理**(MBeanServerDelegate):提供关于MBean Server本身的信息,如版本和实现信息。 - **通知**:...
Standard MBeans是预定义了管理接口的类,Dynamic MBeans则可以在运行时动态定义其管理接口,而Model MBeans是一种抽象层,可以将任何Java对象转换为MBean。 MXBean是JMX中的一个特殊概念,它是标准MBean的扩展,...
根据功能不同,MBeans分为三种类型:简单MBean(Standard MBeans)、动态MBeans(Dynamic MBeans)和开放MBeans(Open MBeans)。 1. **简单MBeans**:是最基本的形式,直接将Java类与MBean接口关联起来,方便快捷...
Java Management Extensions(JMX)是Java平台上的一个标准,它提供了管理和监视应用程序、服务、硬件设备等资源的能力。JMX允许开发人员创建可管理和监视的组件,并将它们集成到Java应用中。以下是对JMX配置与使用...
最后,JMX代理则作为一个桥梁,连接MBean服务器和外部管理系统,使得远程管理成为可能。 接下来,我们探讨MBean的类型。MBean主要有三种:Standard MBean、Dynamic MBean和Open MBean。Standard MBean通过接口定义...
【JMX IN ACTION(七)】章节探讨了JMX中的Model MBean,这是一种特殊类型的MBean,开发者无需编写MBean类。Model MBean是JMX规范定义的一部分,保证在所有符合JMX标准的代理中可用,它是一个通用的MBean,可以被实例...
为了使用这些MBeans,我们需要一个MBeanServer,它是JMX的核心服务,负责注册MBean、执行MBean的操作和获取MBean的属性。`StandardAgent.java`通常会包含创建和注册MBean到MBeanServer的代码: ```java MBeanServer...
Standard MBeans是通过特定接口定义的,Dynamic MBeans则在运行时动态定义其属性和操作,而Open MBeans提供了一种通用的方式来表示复杂的数据类型。 在JMX环境中,MBeans通过MBeanServer注册,这是一个核心组件,...
Java Management Extensions(JMX)是Java平台上的一个标准,它提供了一种管理和监控应用程序、操作系统、网络设备和其他Java应用程序的方式。这个"jmx-1.2.1(jmxri+jmxtools) jar"包含了JMX的两个核心组件:JMX ...
提供的项目应该包含一个简单的JMX应用,展示了如何创建MBean、注册到MBean服务器,以及如何通过JConsole等工具进行远程访问和监控。项目中的"使用说明"将指导你如何运行这个示例,包括导入必要的库,配置MBean ...