java.lang.management
Class ManagementFactory
Provides access to the system's management beans via a series
of static methods.
An instance of a system management bean can be obtained by
using one of the following methods:
- Calling the appropriate static method of this factory.
- Using the platform
MBeanServer
to access the beans locally, or an
MBeanServerConnection
for remote
access. The attributes and operations use the limited
range of data types specified below.
Open Data Types
The data types used by the management beans are restricted
to
open data types to aid interoperability. This
allows the beans to be accessed remotely, including from non-Java
clients. Below is a table which lists the types used by the beans
on the left, and the types they are converted to when returned via
a bean server on the right. Type information is provided for each
bean by obtaining its instance of
MBeanInfo
.
| Data Type Used | Data Type Returned | Primitive types (int , char , etc.) | Same |
Wrapper classes (,
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
THREAD_MXBEAN_NAME
public static final String THREAD_MXBEAN_NAME
The object name for the threading bean.
- "java.lang:type=Threading"
T newPlatformMXBeanProxy
public static T newPlatformMXBeanProxy(MBeanServerConnection connection,
String mxbeanName,
Class mxbeanInterface)
throws IOException
Returns a proxy for the specified platform bean. A proxy object is created
using
Proxy.newProxyInstance(mxbeanInterface.getClassLoader(),
new Class[] { mxbeanInterface }, handler)
. The
NotificationEmitter
class is also added to the
array if the bean provides notifications.
handler
refers
to the invocation handler which forwards calls to the connection, and
also provides translation between the Java data types used in the
bean interfaces and the open data types, as specified in the description
of this class. It is this translation that makes the
usual
MBeanServerInvocationHandler
inappropriate
for providing such a proxy.
Note: use of the proxy may result in
IOException
s from the underlying
MBeanServerConnection
and a
InvalidObjectException
if enum constants
used on the client and the server don't match.
connection
- the server connection to use to access the bean.mxbeanName
- the ObjectName
of the
bean to provide a proxy for.mxbeanInterface
- the interface for the bean being proxied.
- a proxy for the specified bean.
IllegalArgumentException
- if mxbeanName
is not a valid
ObjectName
,
the interface and name do not match the
same bean, the name does not refer to a
platform bean or the bean is not registered
with the server accessed by connection
.IOException
- if the connection throws one.
getCompilationMXBean
public static CompilationMXBean getCompilationMXBean()
Returns the compilation bean for the running
virtual machine, if supported. Otherwise,
it returns null
.
- an instance of
CompilationMXBean
for
this virtual machine, or null
if the virtual machine doesn't include
a Just-In-Time (JIT) compiler.
getGarbageCollectorMXBeans
public static List getGarbageCollectorMXBeans()
Returns the garbage collector beans for the running
virtual machine. These may change during the course
of execution.
- a list of garbage collector beans, one for each pool.
getMemoryManagerMXBeans
public static List getMemoryManagerMXBeans()
Returns the memory manager beans for the running
virtual machine. These may change during the course
of execution.
- a list of memory manager beans, one for each manager.
getMemoryPoolMXBeans
public static List getMemoryPoolMXBeans()
Returns the memory pool beans for the running
virtual machine. These may change during the course
of execution.
- a list of memory pool beans, one for each pool.
getPlatformMBeanServer
public static MBeanServer getPlatformMBeanServer()
Returns the platform
MBeanServer
. On the
first call to this method, a server instance is retrieved from
the
MBeanServerFactory
and each of the
beans are registered with it. Subsequent calls return the existing
instance. If the property
javax.management.builder.initial
is set, its value will be used as the name of the class which is used
to provide the server instance.
It is recommended that the platform server is used for other beans as
well, in order to simplify their discovery and publication. Name conflicts
should be avoided.
SecurityException
- if a security manager exists and the
caller's permissions don't imply MBeanServerPermission(String)
("createMBeanServer")
ManagementFactory.java - Factory for obtaining system beans.
Copyright (C) 2006 Free Software Foundation
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.