jdk/src/java.management/share/classes/javax/management/monitor/package.html
author uvangapally
Tue, 01 Aug 2017 10:33:47 +0530
changeset 46050 f51c14dc540f
parent 32034 05676cfd40b5
permissions -rw-r--r--
8181895: javax management docs contain links to technotes Summary: Edited links to point to Alternate paths Reviewed-by: rriggs Contributed-by: ujwal.vangapally@oracle.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     1
<html>
90ce3da70b43 Initial load
duke
parents:
diff changeset
     2
<head>
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
<title>javax.management.monitor package</title>
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
<!--
46050
f51c14dc540f 8181895: javax management docs contain links to technotes
uvangapally
parents: 32034
diff changeset
     5
Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
under the terms of the GNU General Public License version 2 only, as
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 833
diff changeset
    10
published by the Free Software Foundation.  Oracle designates this
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
particular file as subject to the "Classpath" exception as provided
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 833
diff changeset
    12
by Oracle in the LICENSE file that accompanied this code.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    19
90ce3da70b43 Initial load
duke
parents:
diff changeset
    20
You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    21
2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    22
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
5551
327690766109 6956202: Fix a few missed rebranding issues, please contact lines etc.
ohair
parents: 5506
diff changeset
    24
Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
327690766109 6956202: Fix a few missed rebranding issues, please contact lines etc.
ohair
parents: 5506
diff changeset
    25
or visit www.oracle.com if you need additional information or have any
327690766109 6956202: Fix a few missed rebranding issues, please contact lines etc.
ohair
parents: 5506
diff changeset
    26
questions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
-->
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
</head>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
<body bgcolor="white">
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
      <p>Provides the definition of the monitor classes.  A Monitor is
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
      an MBean that periodically observes the value of an attribute in
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
      one or more other MBeans.  If the attribute meets a certain
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
      condition, the Monitor emits a {@link
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
      javax.management.monitor.MonitorNotification
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
      MonitorNotification}. When the monitor MBean periodically calls
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
      {@link javax.management.MBeanServer#getAttribute getAttribute}
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
      to retrieve the value of the attribute being monitored it does
90ce3da70b43 Initial load
duke
parents:
diff changeset
    38
      so within the access control context of the
90ce3da70b43 Initial load
duke
parents:
diff changeset
    39
      {@link javax.management.monitor.Monitor#start} caller.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
833
bfa2bef7517c 6323980: Annotations to simplify MBean development
emcmanus
parents: 2
diff changeset
    41
      <p id="complex">The value being monitored can be a simple value
bfa2bef7517c 6323980: Annotations to simplify MBean development
emcmanus
parents: 2
diff changeset
    42
      contained within a complex type. For example, the {@link
bfa2bef7517c 6323980: Annotations to simplify MBean development
emcmanus
parents: 2
diff changeset
    43
      java.lang.management.MemoryMXBean MemoryMXBean} defined in
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    44
      {@code java.lang.management} has an attribute
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    45
      {@code HeapMemoryUsage} of type {@link
833
bfa2bef7517c 6323980: Annotations to simplify MBean development
emcmanus
parents: 2
diff changeset
    46
      java.lang.management.MemoryUsage MemoryUsage}. To monitor the
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    47
      amount of <i>used</i> memory, described by the {@code used}
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    48
      property of {@code MemoryUsage}, you could monitor
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    49
      "{@code HeapMemoryUsage.used}". That string would be the
833
bfa2bef7517c 6323980: Annotations to simplify MBean development
emcmanus
parents: 2
diff changeset
    50
      argument to {@link
bfa2bef7517c 6323980: Annotations to simplify MBean development
emcmanus
parents: 2
diff changeset
    51
      javax.management.monitor.MonitorMBean#setObservedAttribute(String)
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
      setObservedAttribute}.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    54
      <p>The rules used to interpret an {@code ObservedAttribute} like
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    55
      {@code "HeapMemoryUsage.used"} are as follows. Suppose the string is
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    56
      <i>A.e</i> (so <i>A</i> would be {@code "HeapMemoryUsage"} and <i>e</i>
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    57
      would be {@code "used"} in the example).</p>
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    58
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
      <p>First the value of the attribute <i>A</i> is obtained. Call it
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
      <i>v</i>. A value <i>x</i> is extracted from <i>v</i> as follows:</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
      <ul>
15300
ffec14ad2f94 8006524: JSR-3: Allows java.beans to be optional
alanb
parents: 9693
diff changeset
    63
          
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    64
      <li>If <i>v</i> is a {@link javax.management.openmbean.CompositeData
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
      CompositeData} and if <i>v</i>.{@link
90ce3da70b43 Initial load
duke
parents:
diff changeset
    66
      javax.management.openmbean.CompositeData#get(String) get}(<i>e</i>)
90ce3da70b43 Initial load
duke
parents:
diff changeset
    67
      returns a value then <i>x</i> is that value.</li>
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    68
      <li>If <i>v</i> is an array and <i>e</i> is the string {@code "length"}
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    69
      then <i>x</i> is the length of the array.</li>
15300
ffec14ad2f94 8006524: JSR-3: Allows java.beans to be optional
alanb
parents: 9693
diff changeset
    70
      
ffec14ad2f94 8006524: JSR-3: Allows java.beans to be optional
alanb
parents: 9693
diff changeset
    71
      <li>If the above rules do not produce a value, and if introspection, as
ffec14ad2f94 8006524: JSR-3: Allows java.beans to be optional
alanb
parents: 9693
diff changeset
    72
      if by calling {@link java.beans.Introspector#getBeanInfo(Class) 
ffec14ad2f94 8006524: JSR-3: Allows java.beans to be optional
alanb
parents: 9693
diff changeset
    73
      Introspector.getBeanInfo}, for the class of <i>v</i> 
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    74
      (<i>v</i>.{@code getClass()}) identifies a property with the name 
15300
ffec14ad2f94 8006524: JSR-3: Allows java.beans to be optional
alanb
parents: 9693
diff changeset
    75
      <i>e</i>, then <i>x</i> is the result of reading the property value. </li>
ffec14ad2f94 8006524: JSR-3: Allows java.beans to be optional
alanb
parents: 9693
diff changeset
    76
      
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
      </ul>
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
      <p>The third rule means for example that if the attribute
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    80
      {@code HeapMemoryUsage} is a {@code MemoryUsage}, monitoring
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    81
      {@code "HeapMemoryUsage.used"} will obtain the observed value by
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    82
      calling {@code MemoryUsage.getUsed()}.</p>
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    83
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    84
      <p>If the {@code ObservedAttribute} contains more than one period,
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    85
      for example {@code "ConnectionPool.connectionStats.length"}, then the
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
      above rules are applied iteratively. Here, <i>v</i> would initially be
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    87
      the value of the attribute {@code ConnectionPool}, and <i>x</i> would
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
      be derived by applying the above rules with <i>e</i> equal to
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    89
      {@code "connectionStats"}. Then <i>v</i> would be set to this <i>x</i>
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    90
      and a new <i>x</i> derived by applying the rules again with <i>e</i>
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    91
      equal to {@code "length"}.</p>
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
      <p>Although it is recommended that attribute names be valid Java
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
      identifiers, it is possible for an attribute to be called
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    95
      {@code HeapMemoryUsage.used}. This means that an
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    96
      {@code ObservedAttribute} that is {@code HeapMemoryUsage.used}
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
      could mean that the value to observe is either an attribute of that
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    98
      name, or the property {@code used} within an attribute called
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
    99
      {@code HeapMemoryUsage}. So for compatibility reasons, when the
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
   100
      {@code ObservedAttribute} contains a period ({@code .}), the monitor
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
      will check whether an attribute exists whose name is the full
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
   102
      {@code ObservedAttribute} string ({@code HeapMemoryUsage.used} in the
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
      example). It does this by calling {@link
90ce3da70b43 Initial load
duke
parents:
diff changeset
   104
      javax.management.MBeanServer#getMBeanInfo(javax.management.ObjectName)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
      getMBeanInfo} for the observed MBean and looking for a contained {@link
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
      javax.management.MBeanAttributeInfo MBeanAttributeInfo} with the given
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
      name. If one is found, then that is what is monitored. If more than one
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
      MBean is being observed, the behavior is unspecified if some of them have
32034
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
   109
      a {@code HeapMemoryUsage.used} attribute and others do not. An
05676cfd40b5 8133040: docs: replace <tt> tags (obsolete in html5) for java.management
avstepan
parents: 25859
diff changeset
   110
      implementation may therefore call {@code getMBeanInfo} on just one of
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
      the MBeans in this case. The behavior is also unspecified if the result
90ce3da70b43 Initial load
duke
parents:
diff changeset
   112
      of the check changes while the monitor is active.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   113
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
      <p>The exact behavior of monitors is detailed in the
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
	<a href="#spec">JMX Specification</a>.  What follows is a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   116
	summary.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   117
90ce3da70b43 Initial load
duke
parents:
diff changeset
   118
      <p>There are three kinds of Monitors:</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   119
90ce3da70b43 Initial load
duke
parents:
diff changeset
   120
      <ul>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
	<li>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   122
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
	  <p>A {@link javax.management.monitor.CounterMonitor
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
	    CounterMonitor} observes attributes of integer
90ce3da70b43 Initial load
duke
parents:
diff changeset
   125
	    type.  The attributes are assumed to be non-negative, and
90ce3da70b43 Initial load
duke
parents:
diff changeset
   126
	    monotonically increasing except for a possible
90ce3da70b43 Initial load
duke
parents:
diff changeset
   127
	    <em>roll-over</em> at a specified <em>modulus</em>.  Each
90ce3da70b43 Initial load
duke
parents:
diff changeset
   128
	    observed attribute has an associated <em>threshold</em>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   129
	    value.  A notification is sent when the attribute exceeds
90ce3da70b43 Initial load
duke
parents:
diff changeset
   130
	    its threshold.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   131
	  
90ce3da70b43 Initial load
duke
parents:
diff changeset
   132
	  <p>An <em>offset</em> value can be specified.  When an
90ce3da70b43 Initial load
duke
parents:
diff changeset
   133
	    observed value exceeds its threshold, the threshold is
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
	    incremented by the offset, or by a multiple of the offset
90ce3da70b43 Initial load
duke
parents:
diff changeset
   135
	    sufficient to make the threshold greater than the new
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
	    observed value.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   137
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
	  <p>A <code>CounterMonitor</code> can operate in
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
	    <em>difference mode</em>.  In this mode, the value
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
	    compared against the threshold is the difference between
90ce3da70b43 Initial load
duke
parents:
diff changeset
   141
	    two successive observations of an attribute.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   142
	  
90ce3da70b43 Initial load
duke
parents:
diff changeset
   143
	</li>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   144
	<li>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   145
90ce3da70b43 Initial load
duke
parents:
diff changeset
   146
	  <p>A {@link javax.management.monitor.GaugeMonitor
90ce3da70b43 Initial load
duke
parents:
diff changeset
   147
	    GaugeMonitor} observes attributes of numerical type.  Each
90ce3da70b43 Initial load
duke
parents:
diff changeset
   148
	    observed attribute has an associated <em>high
90ce3da70b43 Initial load
duke
parents:
diff changeset
   149
	      threshold</em> and <em>low threshold</em>.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   150
90ce3da70b43 Initial load
duke
parents:
diff changeset
   151
	  <p>When an observed attribute crosses the high threshold, if
90ce3da70b43 Initial load
duke
parents:
diff changeset
   152
	    the <em>notify high</em> flag is true, then a notification
90ce3da70b43 Initial load
duke
parents:
diff changeset
   153
	    is sent.  Subsequent crossings of the high threshold value
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
	    will not trigger further notifications until the gauge value
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
	    becomes less than or equal to the low threshold.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   156
90ce3da70b43 Initial load
duke
parents:
diff changeset
   157
	  <p>When an observed attribute crosses the low threshold, if
90ce3da70b43 Initial load
duke
parents:
diff changeset
   158
	    the <em>notify low</em> flag is true, then a notification
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
	    is sent.  Subsequent crossings of the low threshold value
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
	    will not trigger further notifications until the gauge
90ce3da70b43 Initial load
duke
parents:
diff changeset
   161
	    value becomes greater than or equal to the high
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
	    threshold.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
	  <p>Typically, only one of the notify high and notify low
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
	    flags is set.  The other threshold is used to provide a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
	    <em>hysteresis</em> mechanism to avoid the repeated
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
	    triggering of notifications when an attribute makes small
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
	    oscillations around the threshold value.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
	  <p>A <code>GaugeMonitor</code> can operate in <em>difference
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
	      mode</em>.  In this mode, the value compared against the
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
	    high and low thresholds is the difference between two
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
	    successive observations of an attribute.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
	</li>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
	<li>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   177
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
	  <p>A {@link javax.management.monitor.StringMonitor
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
	    StringMonitor} observes attributes of type
90ce3da70b43 Initial load
duke
parents:
diff changeset
   180
	    <code>String</code>.  A notification is sent when an
90ce3da70b43 Initial load
duke
parents:
diff changeset
   181
	    observed attribute becomes equal and/or not equal to a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   182
	    given string.</p>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   183
90ce3da70b43 Initial load
duke
parents:
diff changeset
   184
	</li>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   185
      </ul>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   186
    <p id="spec">
46050
f51c14dc540f 8181895: javax management docs contain links to technotes
uvangapally
parents: 32034
diff changeset
   187
    @see <a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr160/index2.html">
f51c14dc540f 8181895: javax management docs contain links to technotes
uvangapally
parents: 32034
diff changeset
   188
      JMX Specification, version 1.4</a>
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   189
      @since 1.5
90ce3da70b43 Initial load
duke
parents:
diff changeset
   190
90ce3da70b43 Initial load
duke
parents:
diff changeset
   191
</BODY>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   192
</HTML>