History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/java/lang/management/package.html (1 of 18352 files). Show all

Unified · Split

java/pkg/java/lang/management/package.html+248−0
@@ -0,0 +1,248 @@
1<!--
2 Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
3 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
5 This code is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License version 2 only, as
7 published by the Free Software Foundation. Oracle designates this
8 particular file as subject to the "Classpath" exception as provided
9 by Oracle in the LICENSE file that accompanied this code.
10
11 This code is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 version 2 for more details (a copy is included in the LICENSE file that
15 accompanied this code).
16
17 You should have received a copy of the GNU General Public License version
18 2 along with this work; if not, write to the Free Software Foundation,
19 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
21 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 or visit www.oracle.com if you need additional information or have any
23 questions.
24-->
25
26<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
27<html>
28<body bgcolor="white">
29
30Provides the management interfaces for monitoring and management of the
31Java virtual machine and other components in the Java runtime.
32It allows both local and remote
33monitoring and management of the running Java virtual machine.
34<p>
35
36<h4><a name="MXBean">Platform MXBean</a></h4>
37<p>
38A platform MXBean is a <i>managed bean</i> that
39conforms to the <a href="../../../javax/management/package-summary.html">JMX</a>
40Instrumentation Specification and only uses a set of basic data types.
41Each platform MXBean is a {@link java.lang.management.PlatformManagedObject}
42with a unique
43{@linkplain java.lang.management.PlatformManagedObject#getObjectName name}.
44<p>
45<h4>ManagementFactory</h4>
46
47<p>The {@link java.lang.management.ManagementFactory} class is the management
48factory class for the Java platform. This class provides a set of
49static factory methods to obtain the MXBeans for the Java platform
50to allow an application to access the MXBeans directly.
51
52<p>A <em>platform MBeanServer</em> can be accessed with the
53{@link java.lang.management.ManagementFactory#getPlatformMBeanServer
54 getPlatformMBeanServer} method. On the first call to this method,
55it creates the platform MBeanServer and registers all platform MXBeans
56including {@linkplain java.lang.management.PlatformManagedObject
57platform MXBeans}.
58Each platform MXBean is registered with a unique name defined in
59the specification of the management interface.
60This is a single MBeanServer that can be shared by different managed
61components running within the same Java virtual machine.
62
63<h4>Interoperability</h4>
64
65<p>A management application and a platform MBeanServer of a running
66virtual machine can interoperate
67without requiring classes used by the platform MXBean interfaces.
68The data types being transmitted between the JMX connector
69server and the connector client are JMX
70{@linkplain javax.management.openmbean.OpenType open types} and
71this allows interoperation across versions.
72A data type used by the MXBean interfaces are mapped to an
73open type when being accessed via MBeanServer interface.
74See the <a href="../../../javax/management/MXBean.html#MXBean-spec">
75MXBean</a> specification for details.
76
77<h4><a name="examples">Ways to Access MXBeans</a></h4>
78
79<p>An application can monitor the instrumentation of the
80Java virtual machine and the runtime in the following ways:
81<p>
82<b>1. Direct access to an MXBean interface</b>
83<p>
84<ul>
85<li>Get an MXBean instance locally in the running Java virtual machine:<p>
86<pre>
87 RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean();
88
89 // Get the standard attribute "VmVendor"
90 String vendor = mxbean.getVmVendor();
91</pre>
92<p>Or by calling the
93 {@link java.lang.management.ManagementFactory#getPlatformMXBean(Class)
94 getPlatformMXBean} or
95 {@link java.lang.management.ManagementFactory#getPlatformMXBeans(Class)
96 getPlatformMXBeans} method:
97<pre>
98 RuntimeMXBean mxbean = ManagementFactory.getPlatformMXBean(RuntimeMXBean.class);
99
100 // Get the standard attribute "VmVendor"
101 String vendor = mxbean.getVmVendor();
102</pre>
103<p>
104</li>
105<li>Construct an MXBean proxy instance that forwards the
106 method calls to a given MBeanServer:<p>
107<pre>
108 MBeanServerConnection mbs;
109
110 // Connect to a running JVM (or itself) and get MBeanServerConnection
111 // that has the JVM MBeans registered in it
112 ...
113
114 // Get a MBean proxy for RuntimeMXBean interface
115 RuntimeMXBean proxy =
116 {@link java.lang.management.ManagementFactory#getPlatformMXBean(MBeanServerConnection, Class)
117 ManagementFactory.getPlatformMXBean}(mbs,
118 RuntimeMXBean.class);
119 // Get standard attribute "VmVendor"
120 String vendor = proxy.getVmVendor();
121</pre>
122<p>A proxy is typically used to access an MXBean
123 in a remote Java virtual machine.
124 An alternative way to create an MXBean proxy is:
125<pre>
126 RuntimeMXBean proxy =
127 {@link java.lang.management.ManagementFactory#newPlatformMXBeanProxy
128 ManagementFactory.newPlatformMXBeanProxy}(mbs,
129 ManagementFactory.RUNTIME_MXBEAN_NAME,
130 RuntimeMXBean.class);
131</pre>
132</li>
133</ul>
134<p>
135<b>2. Indirect access to an MXBean interface via MBeanServer</b><p>
136<ul>
137<li>Go through the
138 {@link java.lang.management.ManagementFactory#getPlatformMBeanServer
139 platform MBeanServer} to access MXBeans locally or
140 a specific {@code MBeanServerConnection} to access
141 MXBeans remotely.
142 The attributes and operations of an MXBean use only
143 <em>JMX open types</em> which include basic data types,
144 {@link javax.management.openmbean.CompositeData CompositeData},
145 and {@link javax.management.openmbean.TabularData TabularData}
146 defined in {@link javax.management.openmbean.OpenType OpenType}.<p>
147<pre>
148 MBeanServerConnection mbs;
149
150 // Connect to a running JVM (or itself) and get MBeanServerConnection
151 // that has the JVM MXBeans registered in it
152 ...
153
154 try {
155 // Assuming the RuntimeMXBean has been registered in mbs
156 ObjectName oname = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
157
158 // Get standard attribute "VmVendor"
159 String vendor = (String) mbs.getAttribute(oname, "VmVendor");
160 } catch (....) {
161 // Catch the exceptions thrown by ObjectName constructor
162 // and MBeanServer.getAttribute method
163 ...
164 }
165</pre>
166</li>
167</ul>
168
169
170<h4><a name="extension">Platform Extension</a></h4>
171
172<p>A Java virtual machine implementation may add its platform extension to
173the management interface by defining platform-dependent
174interfaces that extend the standard management interfaces to include
175platform-specific metrics and management operations.
176The static factory methods in the <tt>ManagementFactory</tt> class will
177return the MXBeans with the platform extension.
178
179<p>
180It is recommended to name the platform-specific attributes with
181a vendor-specific prefix such as the vendor's name to
182avoid collisions of the attribute name between the future extension
183to the standard management interface and the platform extension.
184If the future extension to the standard management interface defines
185a new attribute for a management interface and the attribute name
186is happened to be same as some vendor-specific attribute's name,
187the applications accessing that vendor-specific attribute would have
188to be modified to cope with versioning and compatibility issues.
189
190<p>Below is an example showing how to access an attribute
191from the platform extension:
192
193<p>
1941) Direct access to the Oracle-specific MXBean interface
195<blockquote>
196<pre>
197 List&lt;com.sun.management.GarbageCollectorMXBean&gt; mxbeans =
198 ManagementFactory.getPlatformMXBeans(com.sun.management.GarbageCollectorMXBean.class);
199
200 for (com.sun.management.GarbageCollectorMXBean gc : mxbeans) {
201 // Get the standard attribute "CollectionCount"
202 String count = mxbean.getCollectionCount();
203
204 // Get the platform-specific attribute "LastGcInfo"
205 GcInfo gcinfo = gc.getLastGcInfo();
206 ...
207 }
208</pre>
209</blockquote>
210
211<p>
2122) Access the Oracle-specific MXBean interface via <tt>MBeanServer</tt>
213 through proxy
214
215<blockquote><pre>
216 MBeanServerConnection mbs;
217
218 // Connect to a running JVM (or itself) and get MBeanServerConnection
219 // that has the JVM MXBeans registered in it
220 ...
221
222 List&lt;com.sun.management.GarbageCollectorMXBean&gt; mxbeans =
223 ManagementFactory.getPlatformMXBeans(mbs, com.sun.management.GarbageCollectorMXBean.class);
224
225 for (com.sun.management.GarbageCollectorMXBean gc : mxbeans) {
226 // Get the standard attribute "CollectionCount"
227 String count = mxbean.getCollectionCount();
228
229 // Get the platform-specific attribute "LastGcInfo"
230 GcInfo gcinfo = gc.getLastGcInfo();
231 ...
232 }
233</pre></blockquote>
234
235<p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
236or method in any class or interface in this package will cause a {@link
237java.lang.NullPointerException NullPointerException} to be thrown.
238
239<p> The java.lang.management API is thread-safe.
240
241@see <a href="../../../javax/management/package-summary.html">
242 JMX Specification.</a>
243
244@author Mandy Chung
245@since 1.5
246
247</body>
248</html>

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t