This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.


javax.management
interface MBeanServer

All Superinterfaces:
MBeanServerConnection
All Known Subinterfaces:
MBeanServerForwarder

Most common way to construct:

MBeanServer server = MBeanServerFactory.createMBeanServer();

Based on 94 examples


public interface MBeanServer
extends MBeanServerConnection

This is the interface for MBean manipulation on the agent side. It contains the methods necessary for the creation, registration, and deletion of MBeans as well as the access methods for registered MBeans. This is the core component of the JMX infrastructure.

User code does not usually implement this interface. Instead, an object that implements this interface is obtained with one of the methods in the {@link MBeanServerFactory} class.

Every MBean which is added to the MBean server becomes manageable: its attributes and operations become remotely accessible through the connectors/adaptors connected to that MBean server. A Java object cannot be registered in the MBean server unless it is a JMX compliant MBean.

When an MBean is registered or unregistered in the MBean server a {@link javax.management.MBeanServerNotification MBeanServerNotification} Notification is emitted. To register an object as listener to MBeanServerNotifications you should call the MBean server method {@link #addNotificationListener addNotificationListener} with ObjectName the ObjectName of the {@link javax.management.MBeanServerDelegate MBeanServerDelegate}. This ObjectName is:
JMImplementation:type=MBeanServerDelegate.

An object obtained from the {@link MBeanServerFactory#createMBeanServer(String) createMBeanServer} or {@link MBeanServerFactory#newMBeanServer(String) newMBeanServer} methods of the {@link MBeanServerFactory} class applies security checks to its methods, as follows.

First, if there is no security manager ({@link System#getSecurityManager()} is null), then an implementation of this interface is free not to make any checks.

Assuming that there is a security manager, or that the implementation chooses to make checks anyway, the checks are made as detailed below. In what follows, className is the string returned by {@link MBeanInfo#getClassName()} for the target MBean.

If a security check fails, the method throws {@link SecurityException}.

For methods that can throw {@link InstanceNotFoundException}, this exception is thrown for a non-existent MBean, regardless of permissions. This is because a non-existent MBean has no className.


Method Summary
 void

          
 void

          
 ObjectInstance
createMBean(String className, ObjectName name)

          
 ObjectInstance
createMBean(String className, ObjectName name, ObjectName loaderName)

          
 ObjectInstance
createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature)

          
 ObjectInstance
createMBean(String className, ObjectName name, Object[] params, String[] signature)

          
 ObjectInputStream
deserialize(ObjectName name, byte[] data)

          De-serializes a byte array in the context of the class loader of an MBean.
 ObjectInputStream
deserialize(String className, byte[] data)

          De-serializes a byte array in the context of a given MBean class loader.
 ObjectInputStream
deserialize(String className, ObjectName loaderName, byte[] data)

          De-serializes a byte array in the context of a given MBean class loader.
 Object
getAttribute(ObjectName name, String attribute)

          
 AttributeList
getAttributes(ObjectName name, String[] attributes)

          
 ClassLoader

          Return the named java.lang.ClassLoader.
 ClassLoader

          Return the java.lang.ClassLoader that was used for loading the class of the named MBean.
 ClassLoaderRepository

          Return the ClassLoaderRepository for this MBeanServer.
 String

          
 String[]

          
 Integer

          Returns the number of MBeans registered in the MBean server.
 MBeanInfo

          
 ObjectInstance

          
 Object
instantiate(String className)

          Instantiates an object using the list of all class loaders registered in the MBean server's javax.management.loading.ClassLoaderRepository.
 Object
instantiate(String className, ObjectName loaderName)

          Instantiates an object using the class Loader specified by its ObjectName.
 Object
instantiate(String className, ObjectName loaderName, Object[] params, String[] signature)

          Instantiates an object.
 Object
instantiate(String className, Object[] params, String[] signature)

          Instantiates an object using the list of all class loaders registered in the MBean server javax.management.loading.ClassLoaderRepository.
 Object
invoke(ObjectName name, String operationName, Object[] params, String[] signature)

          
 boolean
isInstanceOf(ObjectName name, String className)

          
 boolean

          
 Set

          
 Set

          
 ObjectInstance

          Registers a pre-existing object as an MBean with the MBean server.
 void

          
 void

          
 void

          
 void

          
 void
setAttribute(ObjectName name, Attribute attribute)

          
 AttributeList

          
 void

          
 
Methods inherited from class javax.management.MBeanServerConnection
addNotificationListener, addNotificationListener, createMBean, createMBean, createMBean, createMBean, getAttribute, getAttributes, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, removeNotificationListener, removeNotificationListener, setAttribute, setAttributes, unregisterMBean
 

Method Detail

addNotificationListener

public void addNotificationListener(ObjectName name,
                                    NotificationListener listener,
                                    NotificationFilter filter,
                                    Object handback)
                             throws InstanceNotFoundException
Parameters:
name
listener
filter
handback
Throws:
InstanceNotFoundException

addNotificationListener

public void addNotificationListener(ObjectName name,
                                    ObjectName listener,
                                    NotificationFilter filter,
                                    Object handback)
                             throws InstanceNotFoundException
Parameters:
name
listener
filter
handback
Throws:
InstanceNotFoundException

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException
Parameters:
className
name
Throws:
ReflectionException
InstanceAlreadyExistsException
MBeanRegistrationException
MBeanException
NotCompliantMBeanException

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name,
                                  ObjectName loaderName)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException
Parameters:
className
name
loaderName
Throws:
ReflectionException
InstanceAlreadyExistsException
MBeanRegistrationException
MBeanException
NotCompliantMBeanException
InstanceNotFoundException

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name,
                                  ObjectName loaderName,
                                  Object[] params,
                                  String[] signature)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException
Parameters:
className
name
loaderName
params
signature
Throws:
ReflectionException
InstanceAlreadyExistsException
MBeanRegistrationException
MBeanException
NotCompliantMBeanException
InstanceNotFoundException

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name,
                                  Object[] params,
                                  String[] signature)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException
Parameters:
className
name
params
signature
Throws:
ReflectionException
InstanceAlreadyExistsException
MBeanRegistrationException
MBeanException
NotCompliantMBeanException

deserialize

public ObjectInputStream deserialize(ObjectName name,
                                     byte[] data)
                              throws InstanceNotFoundException,
                                     OperationsException

De-serializes a byte array in the context of the class loader of an MBean.

Parameters:
name - The name of the MBean whose class loader should be used for the de-serialization.
data - The byte array to be de-sererialized.
Returns:
The de-serialized object stream.
Throws:
InstanceNotFoundException - The MBean specified is not found.
OperationsException - Any of the usual Input/Output related exceptions.

deserialize

public ObjectInputStream deserialize(String className,
                                     byte[] data)
                              throws OperationsException,
                                     ReflectionException

De-serializes a byte array in the context of a given MBean class loader. The class loader is found by loading the class className through the {@link javax.management.loading.ClassLoaderRepository Class Loader Repository}. The resultant class's class loader is the one to use.

Parameters:
className - The name of the class whose class loader should be used for the de-serialization.
data - The byte array to be de-sererialized.
Returns:
The de-serialized object stream.
Throws:
OperationsException - Any of the usual Input/Output related exceptions.
ReflectionException - The specified class could not be loaded by the class loader repository

deserialize

public ObjectInputStream deserialize(String className,
                                     ObjectName loaderName,
                                     byte[] data)
                              throws InstanceNotFoundException,
                                     OperationsException,
                                     ReflectionException

De-serializes a byte array in the context of a given MBean class loader. The class loader is the one that loaded the class with name "className". The name of the class loader to be used for loading the specified class is specified. If null, the MBean Server's class loader will be used.

Parameters:
className - The name of the class whose class loader should be used for the de-serialization.
loaderName - The name of the class loader to be used for loading the specified class. If null, the MBean Server's class loader will be used.
data - The byte array to be de-sererialized.
Returns:
The de-serialized object stream.
Throws:
InstanceNotFoundException - The specified class loader MBean is not found.
OperationsException - Any of the usual Input/Output related exceptions.
ReflectionException - The specified class could not be loaded by the specified class loader.

getAttribute

public Object getAttribute(ObjectName name,
                           String attribute)
                    throws MBeanException,
                           AttributeNotFoundException,
                           InstanceNotFoundException,
                           ReflectionException
Parameters:
name
attribute
Throws:
MBeanException
AttributeNotFoundException
InstanceNotFoundException
ReflectionException

getAttributes

public AttributeList getAttributes(ObjectName name,
                                   String[] attributes)
                            throws InstanceNotFoundException,
                                   ReflectionException
Parameters:
name
attributes
Throws:
InstanceNotFoundException
ReflectionException

getClassLoader

public ClassLoader getClassLoader(ObjectName loaderName)
                           throws InstanceNotFoundException

Return the named {@link java.lang.ClassLoader}.

Parameters:
loaderName - The ObjectName of the ClassLoader. May be null, in which case the MBean server's own ClassLoader is returned.
Returns:
The named ClassLoader. If l is the actual ClassLoader with that name, and r is the returned value, then either:
  • r is identical to l; or
  • the result of r{@link ClassLoader#loadClass(String) .loadClass(s)} is the same as l{@link ClassLoader#loadClass(String) .loadClass(s)} for any string s.
What this means is that the ClassLoader may be wrapped in another ClassLoader for security or other reasons.
Throws:
InstanceNotFoundException - if the named ClassLoader is not found.

getClassLoaderFor

public ClassLoader getClassLoaderFor(ObjectName mbeanName)
                              throws InstanceNotFoundException

Return the {@link java.lang.ClassLoader} that was used for loading the class of the named MBean.

Parameters:
mbeanName - The ObjectName of the MBean.
Returns:
The ClassLoader used for that MBean. If l is the MBean's actual ClassLoader, and r is the returned value, then either:
  • r is identical to l; or
  • the result of r{@link ClassLoader#loadClass(String) .loadClass(s)} is the same as l{@link ClassLoader#loadClass(String) .loadClass(s)} for any string s.
What this means is that the ClassLoader may be wrapped in another ClassLoader for security or other reasons.
Throws:
InstanceNotFoundException - if the named MBean is not found.

getClassLoaderRepository

public ClassLoaderRepository getClassLoaderRepository()

Return the ClassLoaderRepository for this MBeanServer.

Returns:
The ClassLoaderRepository for this MBeanServer.

getDefaultDomain

public String getDefaultDomain()

getDomains

public String[] getDomains()

getMBeanCount

public Integer getMBeanCount()
Returns the number of MBeans registered in the MBean server.

Returns:
the number of registered MBeans, wrapped in an Integer. If the caller's permissions are restricted, this number may be greater than the number of MBeans the caller can access.

getMBeanInfo

public MBeanInfo getMBeanInfo(ObjectName name)
                       throws InstanceNotFoundException,
                              IntrospectionException,
                              ReflectionException
Parameters:
name
Throws:
InstanceNotFoundException
IntrospectionException
ReflectionException

getObjectInstance

public ObjectInstance getObjectInstance(ObjectName name)
                                 throws InstanceNotFoundException
Parameters:
name
Throws:
InstanceNotFoundException

instantiate

public Object instantiate(String className)
                   throws ReflectionException,
                          MBeanException

Instantiates an object using the list of all class loaders registered in the MBean server's {@link javax.management.loading.ClassLoaderRepository Class Loader Repository}. The object's class should have a public constructor. This method returns a reference to the newly created object. The newly created object is not registered in the MBean server.

This method is equivalent to {@link #instantiate(String,Object[],String[]) instantiate(className, (Object[]) null, (String[]) null)}.

Parameters:
className - The class name of the object to be instantiated.
Returns:
The newly instantiated object.
Throws:
ReflectionException - Wraps a java.lang.ClassNotFoundException or the java.lang.Exception that occurred when trying to invoke the object's constructor.
MBeanException - The constructor of the object has thrown an exception

instantiate

public Object instantiate(String className,
                          ObjectName loaderName)
                   throws ReflectionException,
                          MBeanException,
                          InstanceNotFoundException

Instantiates an object using the class Loader specified by its ObjectName. If the loader name is null, the ClassLoader that loaded the MBean Server will be used. The object's class should have a public constructor. This method returns a reference to the newly created object. The newly created object is not registered in the MBean server.

This method is equivalent to {@link #instantiate(String,ObjectName,Object[],String[]) instantiate(className, loaderName, (Object[]) null, (String[]) null)}.

Parameters:
className - The class name of the MBean to be instantiated.
loaderName - The object name of the class loader to be used.
Returns:
The newly instantiated object.
Throws:
ReflectionException - Wraps a java.lang.ClassNotFoundException or the java.lang.Exception that occurred when trying to invoke the object's constructor.
MBeanException - The constructor of the object has thrown an exception.
InstanceNotFoundException - The specified class loader is not registered in the MBeanServer.

instantiate

public Object instantiate(String className,
                          ObjectName loaderName,
                          Object[] params,
                          String[] signature)
                   throws ReflectionException,
                          MBeanException,
                          InstanceNotFoundException

Instantiates an object. The class loader to be used is identified by its object name. If the object name of the loader is null, the ClassLoader that loaded the MBean server will be used. The object's class should have a public constructor. The call returns a reference to the newly created object. The newly created object is not registered in the MBean server.

Parameters:
className - The class name of the object to be instantiated.
loaderName - The object name of the class loader to be used.
params - An array containing the parameters of the constructor to be invoked.
signature - An array containing the signature of the constructor to be invoked.
Returns:
The newly instantiated object.
Throws:
ReflectionException - Wraps a java.lang.ClassNotFoundException or the java.lang.Exception that occurred when trying to invoke the object's constructor.
MBeanException - The constructor of the object has thrown an exception
InstanceNotFoundException - The specified class loader is not registered in the MBean server.

instantiate

public Object instantiate(String className,
                          Object[] params,
                          String[] signature)
                   throws ReflectionException,
                          MBeanException

Instantiates an object using the list of all class loaders registered in the MBean server {@link javax.management.loading.ClassLoaderRepository Class Loader Repository}. The object's class should have a public constructor. The call returns a reference to the newly created object. The newly created object is not registered in the MBean server.

Parameters:
className - The class name of the object to be instantiated.
params - An array containing the parameters of the constructor to be invoked.
signature - An array containing the signature of the constructor to be invoked.
Returns:
The newly instantiated object.
Throws:
ReflectionException - Wraps a java.lang.ClassNotFoundException or the java.lang.Exception that occurred when trying to invoke the object's constructor.
MBeanException - The constructor of the object has thrown an exception

invoke

public Object invoke(ObjectName name,
                     String operationName,
                     Object[] params,
                     String[] signature)
              throws InstanceNotFoundException,
                     MBeanException,
                     ReflectionException
Parameters:
name
operationName
params
signature
Throws:
InstanceNotFoundException
MBeanException
ReflectionException

isInstanceOf

public boolean isInstanceOf(ObjectName name,
                            String className)
                     throws InstanceNotFoundException
Parameters:
name
className
Throws:
InstanceNotFoundException

isRegistered

public boolean isRegistered(ObjectName name)
Parameters:
name

queryMBeans

public Set queryMBeans(ObjectName name,
                       QueryExp query)
Parameters:
name
query

queryNames

public Set queryNames(ObjectName name,
                      QueryExp query)
Parameters:
name
query

registerMBean

public ObjectInstance registerMBean(Object object,
                                    ObjectName name)
                             throws InstanceAlreadyExistsException,
                                    MBeanRegistrationException,
                                    NotCompliantMBeanException
Registers a pre-existing object as an MBean with the MBean server. If the object name given is null, the MBean must provide its own name by implementing the {@link javax.management.MBeanRegistration MBeanRegistration} interface and returning the name from the {@link MBeanRegistration#preRegister preRegister} method.

Parameters:
object - The MBean to be registered as an MBean.
name - The object name of the MBean. May be null.
Returns:
An ObjectInstance, containing the ObjectName and the Java class name of the newly registered MBean. If the contained ObjectName is n, the contained Java class name is {@link #getMBeanInfo getMBeanInfo(n)}.getClassName().
Throws:
InstanceAlreadyExistsException - The MBean is already under the control of the MBean server.
MBeanRegistrationException - The preRegister (MBeanRegistration interface) method of the MBean has thrown an exception. The MBean will not be registered.
NotCompliantMBeanException - This object is not a JMX compliant MBean

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       NotificationListener listener)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
Parameters:
name
listener
Throws:
InstanceNotFoundException
ListenerNotFoundException

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       NotificationListener listener,
                                       NotificationFilter filter,
                                       Object handback)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
Parameters:
name
listener
filter
handback
Throws:
InstanceNotFoundException
ListenerNotFoundException

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       ObjectName listener)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
Parameters:
name
listener
Throws:
InstanceNotFoundException
ListenerNotFoundException

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       ObjectName listener,
                                       NotificationFilter filter,
                                       Object handback)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
Parameters:
name
listener
filter
handback
Throws:
InstanceNotFoundException
ListenerNotFoundException

setAttribute

public void setAttribute(ObjectName name,
                         Attribute attribute)
                  throws InstanceNotFoundException,
                         AttributeNotFoundException,
                         InvalidAttributeValueException,
                         MBeanException,
                         ReflectionException
Parameters:
name
attribute
Throws:
InstanceNotFoundException
AttributeNotFoundException
InvalidAttributeValueException
MBeanException
ReflectionException

setAttributes

public AttributeList setAttributes(ObjectName name,
                                   AttributeList attributes)
                            throws InstanceNotFoundException,
                                   ReflectionException
Parameters:
name
attributes
Throws:
InstanceNotFoundException
ReflectionException

unregisterMBean

public void unregisterMBean(ObjectName name)
                     throws InstanceNotFoundException,
                            MBeanRegistrationException
Parameters:
name
Throws:
InstanceNotFoundException
MBeanRegistrationException


This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.
This page displays the Jadeite version of the documention, which is derived from the offical documentation that contains this copyright notice:
Copyright 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
The official Sun™ documentation can be found here at http://java.sun.com/javase/6/docs/api/.