<html>
<head>
<title>JMX™ Remote API.</title>
</head>
<body bgcolor="white">
<p>Interfaces for remote access to
JMX MBean servers.
This package defines the essential interfaces for making a JMX
MBean server manageable remotely. The specification of this
functionality is completed by Part III of the
<a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr160/index2.html">
JMX Specification, version 1.4</a></p>
<p>The JMX specification defines the notion of <b>connectors</b>.
A connector is attached to a JMX API MBean server and makes it
accessible to remote Java clients. The client end of a
connector exports essentially the same interface as the MBean
server, specifically the {@link
javax.management.MBeanServerConnection MBeanServerConnection}
interface.</p>
<p>A connector makes an MBean server remotely accessible through
a given protocol. The JMX Remote API allows the use of different
type of connectors:
<ul>
<li>The JMX Remote API defines a standard connector,
the <b>RMI Connector</b>, which provides remote access to an
MBeanServer through RMI.
<li>The JMX Remote API also defines an optional connector called
<b>JMXMP Connector</b> implementing the JMX Message Protocol
(JMXMP). As it is optional, it is not part of this bundle (see
note below).
<li>User-defined connector protocols are also possible using the
{@link javax.management.remote.JMXConnectorFactory
JMXConnectorFactory} and, optionally, the Generic Connector
(not part of this bundle, see note below).
</ul>
<p><u>Note</u>: the optional packages implementing
the optional part of the <em>JMX Remote API</em>
are not included in the <em>Java SE Platform</em>
but are available from the <em>JMX Remote API
<a href="https://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html">
Reference Implementation</a></em>.</p>
<h2>Connector addresses</h2>
<p>Typically, a connector server has an address, represented by the
class {@link javax.management.remote.JMXServiceURL
JMXServiceURL}. An address for the RMI Connector can look
like this:</p>
<pre>
service:jmx:rmi:///jndi/rmi://myhost:1099/myname
</pre>
<p>In this <code>JMXServiceURL</code>, the first <code>rmi:</code>
specifies the RMI connector, while the second <code>rmi:</code>
specifies the RMI registry into which the RMI connector server
has stored its stub.
<p>The example above shows only one form of address.
An address for the RMI Connector can take several forms,
as detailed in the documentation for the package
<code>{@link javax.management.remote.rmi}</code>.</p>
<h2>Creating a connector server</h2>
<p>A connector server is created by constructing an instance of
a subclass of {@link
javax.management.remote.JMXConnectorServer
JMXConnectorServer}. Usually, this instance is created
using the method {@link
javax.management.remote.JMXConnectorServerFactory#newJMXConnectorServer(JMXServiceURL,
java.util.Map, javax.management.MBeanServer)
JMXConnectorServerFactory.newJMXConnectorServer}.</p>
<p>Typically, a connector server is associated with an MBean
server either by registering it in that MBean server, or by
supplying the MBean server as a parameter when creating the
connector server.</p>
<h2>Creating a connector client</h2>
<p>A connector client is usually created by supplying the
<code>JMXServiceURL</code> of the connector server to connect to
to the {@link
javax.management.remote.JMXConnectorFactory#connect(JMXServiceURL)
JMXConnectorFactory.connect} method.</p>
<p>For more specialized uses, a connector client can be created
by directly instantiating a class that implements the {@link
javax.management.remote.JMXConnector JMXConnector} interface,
for example the class {@link
javax.management.remote.rmi.RMIConnector
RMIConnector}.</p>
<h2>Additional client or server parameters</h2>
<p>When creating a connector client or server, it is possible to
supply an object of type {@link java.util.Map Map} that defines
additional parameters. Each entry in this Map has a key that is
a string and an associated value whose type is appropriate for
that key. The standard keys defined by the JMX Remote API all
begin with the string "<code>jmx.remote.</code>". The document
<em>JMX Remote API</em> lists these standard keys.</p>
<h2>Connection identifiers</h2>
<p>Every connection opened by a connector server has a string
identifier, called its <b>connection id</b>. This identifier
appears in the {@link
javax.management.remote.JMXConnectionNotification
JMXConnectionNotification} events emitted by the connector
server, in the list returned by {@link
javax.management.remote.JMXConnectorServerMBean#getConnectionIds()
getConnectionIds()}, and in the value
returned by the client's {@link
javax.management.remote.JMXConnector#getConnectionId()
getConnectionId()} method.</p>
<p>As an example, a connection ID can look something like this:</p>
<pre>
rmi://192.18.1.9 username 1
</pre>
<p>The formal grammar for connection ids that follow this
convention is as follows (using the grammar notation from section 2.4 of
<em>The Java™ Language Specification</em>):</p>
<pre>
<em>ConnectionId:</em>
<em>Protocol</em> : <em>ClientAddress<sub>opt</sub></em> Space <em>ClientId<sub>opt</sub></em> Space <em>ArbitraryText</em>
<em>ClientAddress:</em>
// <em>HostAddress</em> <em>ClientPort<sub>opt</sub></em>
<em>ClientPort</em>
: <em>HostPort</em>
</pre>
<p>The <code><em>Protocol</em></code> is a protocol that would
be recognized by {@link
javax.management.remote.JMXConnectorFactory
JMXConnectorFactory}.</p>
<p>The <code><em>ClientAddress</em></code> is the
address and port of the connecting client, if these can be
determined, otherwise nothing. The
<code><em>HostAddress</em></code> is the Internet address of
the host that the client is connecting from, in numeric or DNS
/**代码未完, 请加载全部代码(NowJava.com).**/