<div> JavaScript is disabled on your browser.
Skip navigation links
Java™ Platform
Standard Ed. 8
compact3

Package javax.management

在java管理扩展提供了核心课程。

See: 描述

Package javax.management Description

在java管理扩展提供了核心课程。

java管理扩展(jmxTM)API是用于管理和监控标准的API。典型用途包括:

JMX API也可以作为解决方案的一部分,用于管理系统、网络,等等。

该接口包括远程访问,所以一个远程管理程序可以与这些目的的运行应用程序进行交互。

MBeans

JMX API的基本概念是MBean。MBean是一个名为管理对象代表一个资源。它有一个管理接口,必须是公开的,包括:

例如,代表一个应用程序的配置MBean可能代表不同的配置项的属性。阅读CacheSize属性将返回该项的当前值。编写它将更新项目,可能改变正在运行的应用程序的行为。一个操作如save可保存当前配置的持续。通知如ConfigurationChangedNotification可以发送每次改变配置。

在JMX规范使用的API,如java对象实现MBean。然而,正如下面所解释的,这些对象通常不直接引用。

标准MBean

使MBean实现简单,JMX API包括标准MBean的概念。一个标准MBean是一个其属性和操作从使用特定的命名模式java接口导出,类似于用于javabeansTM。例如,考虑一个这样的接口:

configurationmbean公共接口{public int getcachesize();公共无效setcachesize(int的大小);公共长getlastchangedtime();公共无效save();}

方法getCacheSizesetCacheSize定义读写属性类型intCacheSize(与初始资本,不像JavaBeans公约)。

方法getLastChangedTime定义式longLastChangedTime属性。这是一个只读属性,因为没有方法setLastChangedTime

方法save定义一个操作称为save。它不是一个属性,因为它的名字不是以getset,或is

确切的命名标准MBean在JMX Specification详细。

有两种方法可以使一个java对象,这个管理界面的MBean。一是一类具有相同的名称作为java接口,但没有MBean后缀的对象。所以,例子中的对象是类的Configuration,在同一个java包ConfigurationMBean。第二种方法是使用StandardMBean类。

mxbeans

一个MXBean是一个变种的标准MBean在复杂类型映射到一组标准的javax.management.openmbean包中定义的类型。如果你不需要参考特定应用类mxbeans MBean接口是合适的。他们进行了详细的规范MXBean

动态MBeans

动态MBean MBean定义管理接口在运行时。例如,一个配置MBean可以确定名称和属性的揭示通过解析XML文件类型。

一个类实现接口的DynamicMBean任何java对象是一个动态MBean。

打开MBeans

一个开放的管理是一种动态MBean的属性和操作参数和返回值的类型是使用较小的一组预定义的java类的建立。开放MBean操作方便的远程管理程序,不一定能获得特定于应用程序的类型,包括非java程序。开放的 javax.management.openmbean定义MBean封装。

模型MBean

一个模型MBean是一种动态MBean充当管理界面和底层资源管理之间的桥梁。无论是管理界面和管理资源被指定为java对象。同样的模型MBean实现可多次重复使用不同的管理界面和管理资源,它可以提供通用的功能,如持久性和缓存。模型通过定义包 javax.management.modelmbean MBeans。

MBean伺服器

是有用的,MBean必须在MBean服务器注册。MBean服务器储存的MBeans。通常的MBean的唯一途径是通过MBean服务器。换句话说,代码不再访问java对象实现MBean直接,而是访问MBean的名字通过MBean服务器。MBean在每个MBean服务器都有一个唯一的名称,由ObjectName类定义。

MBean服务器实现接口MBeanServer对象。最方便的MBean服务器使用的是平台MBean服务器。这是一个单一的MBean服务器,可以由不同的托管组件运行相同的java虚拟机内共享。平台MBean服务器与ManagementFactory.getPlatformMBeanServer()访问方法。

应用程序也可以创建一个新的MBean服务器,或访问已经创建的MBean服务器,使用MBeanServerFactory类。

创建MBean服务器MBeans

有两种方法来创建一个MBean。一是构建一个java对象将被MBean,然后用registerMBean方法登记在MBean服务器。另一种是创造和使用的一个createMBean方法在单个操作中登记的MBean。

该方法是registerMBean地方使用简单,但不能用于远程。的createMBean方法可以远程使用,但有时需要注意类加载问题。

MBean可执行的操作时,注册或未注册的MBean服务器是否实现MBeanRegistration接口。

在MBean服务器访问MBean

给定一个ObjectName nameMBeanServer mbs,您可以访问的属性和操作,在这个例子中:

int CacheSize = MBS。getAttribute(名称、“CacheSize”);Attribute newcachesize =新的属性(“CacheSize”,新的整数(2000));MBS setAttribute(名称、newcachesize);MBS。调用(名称,“保存”,新的对象[ 0 ],新类[ 0 ]);
z-d45acba7-48ae—4a74-aa35-4d9c64dd8080
configurationmbean conf =JMX.newMBeanProxy(MBS,名字,configurationmbean。类);国际会议getcachesize() CacheSize =;(2000)conf.setcachesize;会议save();

使用MBean代理仅仅是一个方便的。第二个例子最终调用相同的MBeanServer操作的第一个。

MBean服务器可以查询MBeans名字匹配特定模式和/或其属性满足一定的约束条件。名称模式使用的是ObjectName类和约束构造使用的是Query类构造。方法queryNamesqueryMBeans然后执行查询。

MBean的生命周期

MBean可以为了实现MBeanRegistration接口要告诉时,注册和未注册的MBean服务器。此外,该preRegister方法允许MBean得到一个参考的对象,在MBeanServer MBean服务器获得ObjectName

通知

通知的Notification类或子类的实例。除了它的java类,它有一个字符串类型,可以区别于其他通知的同一类。

MBean将发出通知,必须实现NotificationBroadcasterNotificationEmitter接口。通常,这是通过子类化NotificationBroadcasterSupport或授权给该类的一个实例。这里是一个例子:

配置公共类延伸notificationbroadcastersupport实现了configurationmbean {…updated() { private void通知N =新的通知(…);sendNotification(N);}}

通知可以由听众接受,这是实现NotificationListener接口的对象。你可以添加一个监听器的方法MBeanServer.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) MBean。您可以提供一个滤波器,这种方法,只选择感兴趣的通知。过滤器的实现NotificationFilter接口的对象。

MBean可以在同一个MBean服务器的其他MBeans发出通知监听器。在这种情况下,它实现了NotificationListener和方法MBeanServer.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)是用来听的。

远程访问MBean

MBean服务器可以通过远程连接访问。连接器允许远程java应用程序访问在本质上相同的方式作为一个地方一个MBean服务器。包 javax.management.remote定义了连接器。

JMX规范还定义了一个适配器的概念。适配器将在协议如SNMP或HTML请求和访问MBean服务器之间。例如一个SNMP GET操作可能导致对MBean服务器的getAttribute

JMX规范版本之间的互操作性

当一个客户端连接到一个服务器上使用JMX远程API,它是可能的,他们没有了JMX规范相同的版本。对JMX规范这里所描述的版本是1.4版。以前的版本分别为1.2,1.1和1。(没有1.3)标准JMX远程API定义版本1.2开始工作,因此在基于标准的互操作性问题,部署只关注1.2版本开始出现。

每一个版本的JMX规范继续实施之前版本的特性。因此,当客户端运行较早版本比服务器时,不应该有任何的互操作性问题。

当客户端运行的是一个较迟版本的服务器,某些较新的功能可能不可用,如在下一个章节中详细介绍。客户端可以通过检查的MBeanServerDelegateSpecificationVersion属性确定服务器的版本。

如果远程管理服务器1.2

从以下版本开始:
1.5
另请参见:
Java Platform documentation on JMX technology in particular the JMX Specification, version 1.4(pdf).
Skip navigation links
Java™ Platform
Standard Ed. 8

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.

本帮助文档是使用 《百度翻译》翻译,请与英文版配合使用 by--QQ:654638585