接口 | 描述 |
---|---|
Descriptor |
对于一个JMX元额外的元数据。
|
DescriptorAccess |
这个接口是用来获得的描述符类这是一个JMX组件相关的描述符,即
|
DescriptorRead |
接口读取一个管理界面元素如mbeaninfo描述符。
|
DynamicMBean |
定义应该用动态MBean实现方法(MBean公开动态管理界面)。
|
MBeanRegistration |
可以通过为MBean来进行操作之前,注册或未注册的MBean服务器后。
|
MBeanServer |
这是对代理方为MBean操作界面。
|
MBeanServerConnection |
这个接口代表交谈的方式MBean服务器,无论是本地或远程。
|
MBeanServerDelegateMBean |
定义类mbeanserverdelegate对象管理界面。
|
NotificationBroadcaster |
通过MBean实现的接口发出通知。
|
NotificationEmitter |
通过MBean实现的接口发出通知。
|
NotificationFilter |
要由一个作为通知筛选器的任何类来实现。
|
NotificationListener |
应该由一个要接收通知的对象来实现。
|
PersistentMBean |
这个类是由MBeans要持续实现的接口。
|
QueryExp |
表示与数据库查询“在子句”中的关系约束。
|
ValueExp |
表示可以将参数传递给关系表达式的值。
|
类 | 描述 |
---|---|
Attribute |
通过将它的名字与它的值代表一个MBean属性。
|
AttributeChangeNotification |
提供属性更改通知发送的MBean定义。
|
AttributeChangeNotificationFilter | |
AttributeList |
代表名单为MBean属性值。
|
AttributeValueExp |
表示用作关系约束的参数的属性。
|
DefaultLoaderRepository | Deprecated |
ImmutableDescriptor |
一个不可变的描述符。
|
JMX |
静态方法从JMX API。
|
MBeanAttributeInfo |
描述了一个MBean属性暴露管理。
|
MBeanConstructorInfo |
描述了一个构造函数通过MBean暴露。
|
MBeanFeatureInfo |
MBean描述符对象提供一般信息。
|
MBeanInfo |
介绍了管理接口通过MBean暴露;即,属性和操作,可用于管理操作的集合。
|
MBeanNotificationInfo |
的
MBeanNotificationInfo 类用于描述不同情况下发出通知的MBean的特点,对于一个给定的java类的通知。
|
MBeanOperationInfo |
介绍了一种管理的MBean暴露。
|
MBeanParameterInfo |
介绍了通过MBean暴露操作参数。
|
MBeanPermission |
权限控制访问的MBeanServer操作。
|
MBeanServerBuilder |
这类代表一个生成器创建一个默认的
MBeanServer 实施。
|
MBeanServerDelegate |
代表从管理角度的MBean服务器。
|
MBeanServerFactory |
MBean服务器提供参考。
|
MBeanServerInvocationHandler |
InvocationHandler 转发方法的MBean的管理界面通过MBean服务器MBean。
|
MBeanServerNotification |
代表发出的MBean服务器通过mbeanserverdelegate MBean的通知。
|
MBeanServerPermission |
一个权限执行相关的mbeanservers行动。
|
MBeanTrustPermission |
该权限表示“信任”在一个签名或代码库。
|
Notification |
通知类代表一个由MBean发出通知。
|
NotificationBroadcasterSupport |
提供
NotificationEmitter 接口的实现。
|
NotificationFilterSupport |
提供的
NotificationFilter 接口的实现。
|
ObjectInstance |
用来代表一个MBean和类名对象名。
|
ObjectName |
代表一个MBean对象的名字,或一个模式,可以几个MBeans名称匹配。
|
Query |
构造查询对象约束。
|
QueryEval |
允许一个查询是在一个特定的MBean服务器的情况下进行的。
|
StandardEmitterMBean |
MBean的管理界面是通过一个java界面反射测定,并发出通知。
|
StandardMBean |
MBean的管理界面是通过一个java界面反射测定。
|
StringValueExp |
表示对关系约束的参数的字符串。
|
异常 | 描述 |
---|---|
AttributeNotFoundException |
指定的属性不存在或无法检索。
|
BadAttributeValueExpException |
当一个无效的MBean属性传递给查询的构建方法。
|
BadBinaryOpValueExpException |
当传递到用于构造查询的方法时引发的。
|
BadStringOperationException |
当传递到一个无效的字符串操作时抛出的方法来构造查询。
|
InstanceAlreadyExistsException |
MBean已经在仓库注册。
|
InstanceNotFoundException |
指定的MBean不在库中存在。
|
IntrospectionException |
MBean的内省期间发生异常。
|
InvalidApplicationException |
当尝试运用以下:子查询表达式MBean或合格的属性表现为错误的阶级MBean。
|
InvalidAttributeValueException |
指定的值对属性无效。
|
JMException |
通过JMX实现抛出的异常。
|
JMRuntimeException |
运行时异常的JMX实现发射。
|
ListenerNotFoundException |
指定的MBean的听众不在库中存在。
|
MalformedObjectNameException |
该字符串的格式不符合一个有效的对象。
|
MBeanException |
代表“用户自定义”抛出的MBean方法在代理的例外。
|
MBeanRegistrationException |
包装的preregister()抛出的异常,
MBeanRegistration prederegister()的接口方法。
|
NotCompliantMBeanException |
异常发生时,在登记的MBean服务器不是一个JMX兼容的MBean对象。
|
OperationsException |
代表扔在MBean服务器执行操作时对MBeans例外。
|
ReflectionException |
代表扔在MBean服务器时使用的java.lang.reflect类调用方法的MBean的例外。
|
RuntimeErrorException |
当一个
java.lang.Error 发生在代理应该被重新抛出一
RuntimeErrorException 。
|
RuntimeMBeanException |
表示运行时抛出的异常的MBean方法在代理。
|
RuntimeOperationsException |
表示运行时异常抛出的代理执行操作时对MBeans。
|
ServiceNotFoundException |
表示不支持请求的服务时引发的异常。
|
Annotation Type | 描述 |
---|---|
DescriptorKey |
元注释,介绍了如何注释元素涉及在
Descriptor 一场。
|
MXBean |
注释标记接口明确作为一个MXBean接口,或不是一个MXBean接口。
|
在java管理扩展提供了核心课程。
java管理扩展(jmxTM)API是用于管理和监控标准的API。典型用途包括:
JMX API也可以作为解决方案的一部分,用于管理系统、网络,等等。
该接口包括远程访问,所以一个远程管理程序可以与这些目的的运行应用程序进行交互。
JMX API的基本概念是MBean。MBean是一个名为管理对象代表一个资源。它有一个管理接口,必须是公开的,包括:
例如,代表一个应用程序的配置MBean可能代表不同的配置项的属性。阅读CacheSize
属性将返回该项的当前值。编写它将更新项目,可能改变正在运行的应用程序的行为。一个操作如save
可保存当前配置的持续。通知如ConfigurationChangedNotification
可以发送每次改变配置。
在JMX规范使用的API,如java对象实现MBean。然而,正如下面所解释的,这些对象通常不直接引用。
使MBean实现简单,JMX API包括标准MBean的概念。一个标准MBean是一个其属性和操作从使用特定的命名模式java接口导出,类似于用于javabeansTM。例如,考虑一个这样的接口:
configurationmbean公共接口{public int getcachesize();公共无效setcachesize(int的大小);公共长getlastchangedtime();公共无效save();}
方法getCacheSize
和setCacheSize
定义读写属性类型int
称CacheSize
(与初始资本,不像JavaBeans公约)。
方法getLastChangedTime
定义式long
称LastChangedTime
属性。这是一个只读属性,因为没有方法setLastChangedTime
。
方法save
定义一个操作称为save
。它不是一个属性,因为它的名字不是以get
,set
,或is
。
确切的命名标准MBean在JMX Specification详细。
有两种方法可以使一个java对象,这个管理界面的MBean。一是一类具有相同的名称作为java接口,但没有MBean
后缀的对象。所以,例子中的对象是类的Configuration
,在同一个java包ConfigurationMBean
。第二种方法是使用StandardMBean
类。
一个MXBean是一个变种的标准MBean在复杂类型映射到一组标准的javax.management.openmbean
包中定义的类型。如果你不需要参考特定应用类mxbeans MBean接口是合适的。他们进行了详细的规范MXBean
。
动态MBean MBean定义管理接口在运行时。例如,一个配置MBean可以确定名称和属性的揭示通过解析XML文件类型。
一个类实现接口的DynamicMBean
任何java对象是一个动态MBean。
一个开放的管理是一种动态MBean的属性和操作参数和返回值的类型是使用较小的一组预定义的java类的建立。开放MBean操作方便的远程管理程序,不一定能获得特定于应用程序的类型,包括非java程序。开放的 javax.management.openmbean
定义MBean封装。
一个模型MBean是一种动态MBean充当管理界面和底层资源管理之间的桥梁。无论是管理界面和管理资源被指定为java对象。同样的模型MBean实现可多次重复使用不同的管理界面和管理资源,它可以提供通用的功能,如持久性和缓存。模型通过定义包 javax.management.modelmbean
MBeans。
是有用的,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。一是构建一个java对象将被MBean,然后用registerMBean
方法登记在MBean服务器。另一种是创造和使用的一个createMBean
方法在单个操作中登记的MBean。
该方法是registerMBean
地方使用简单,但不能用于远程。的createMBean
方法可以远程使用,但有时需要注意类加载问题。
MBean可执行的操作时,注册或未注册的MBean服务器是否实现MBeanRegistration
接口。
给定一个ObjectName
name
和MBeanServer
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
类构造。方法queryNames
和queryMBeans
然后执行查询。
MBean可以为了实现MBeanRegistration
接口要告诉时,注册和未注册的MBean服务器。此外,该preRegister
方法允许MBean得到一个参考的对象,在MBeanServer
MBean服务器获得ObjectName
。
通知的Notification
类或子类的实例。除了它的java类,它有一个字符串类型,可以区别于其他通知的同一类。
MBean将发出通知,必须实现NotificationBroadcaster
或NotificationEmitter
接口。通常,这是通过子类化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服务器可以通过远程连接访问。连接器允许远程java应用程序访问在本质上相同的方式作为一个地方一个MBean服务器。包 javax.management.remote
定义了连接器。
JMX规范还定义了一个适配器的概念。适配器将在协议如SNMP或HTML请求和访问MBean服务器之间。例如一个SNMP GET操作可能导致对MBean服务器的getAttribute
。
当一个客户端连接到一个服务器上使用JMX远程API,它是可能的,他们没有了JMX规范相同的版本。对JMX规范这里所描述的版本是1.4版。以前的版本分别为1.2,1.1和1。(没有1.3)标准JMX远程API定义版本1.2开始工作,因此在基于标准的互操作性问题,部署只关注1.2版本开始出现。
每一个版本的JMX规范继续实施之前版本的特性。因此,当客户端运行较早版本比服务器时,不应该有任何的互操作性问题。
当客户端运行的是一个较迟版本的服务器,某些较新的功能可能不可用,如在下一个章节中详细介绍。客户端可以通过检查的MBeanServerDelegate
的SpecificationVersion
属性确定服务器的版本。
你不能在一个ObjectName
键属性使用通配符,例如domain:type=Foo,name=*
。那场比赛的整体性能仍然允许使用通配符,例如*:*
或*:type=Foo,*
。
你不能在一个查询中使用Query.isInstanceOf
。
你不能使用点语法如在显示器的observed attribute HeapMemoryUsage.used
,在文档中描述的javax.management.monitor
包。
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.