|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.sun.jdmk.comm.RmiConnectorClient
Provides an implementation of the RemoteMBeanServer
interface based on the Java remote method invocation (RMI) system.
Querying a Java Dynamic Management agent with this connector implies that an instance of
RmiConnectorServer
is running on the remote Java Dynamic Management agent.
In order to identify the Java Dynamic Management agent the connector needs to communicate with,
the method connect
needs to be invoked with the
RMI identity of the RMI Connector Server
.
This class implements the ClientNotificationHandler
interface to
receive notifications from a remote MBean and the HeartBeatClientHandler
interface to detect any problem that could be encountered in the connection with the
RMI Connector Server
Fields inherited from interface com.sun.jdmk.comm.ClientNotificationHandler |
DISCARD_NEW,
DISCARD_OLD,
NO_CACHE_LIMIT,
PULL_MODE,
PUSH_MODE |
Constructor Summary | |
RmiConnectorClient()
Default constructor for RmiConnectorClient. |
|
RmiConnectorClient(java.net.InetAddress add)
|
|
RmiConnectorClient(java.net.InetAddress add,
int commTimeout)
|
Method Summary | |
void |
addHeartBeatNotificationListener(NotificationListener listener,
NotificationFilter filter,
java.lang.Object handback)
Adds the specified heartbeat listener to receive heartbeat notifications from this connector client. |
void |
addNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
java.lang.Object handback)
Adds a listener to a registered MBean. |
void |
addProxy(Proxy proxy)
Deprecated. No more useful. |
void |
clearCache()
Clear the notification cache. |
java.lang.String |
connect(ConnectorAddress MBeanServerAddress)
Initializes the communication with the remote MBeanServer . |
ObjectInstance |
createMBean(java.lang.String className,
ObjectName name)
Creates and registers an instance of an MBean in the remote object server. |
ObjectInstance |
createMBean(java.lang.String className,
ObjectName name,
java.lang.Object[] params,
java.lang.String[] signature)
Creates and registers an instance of an MBean in the remote object server. |
ObjectInstance |
createMBean(java.lang.String className,
ObjectName name,
ObjectName loaderName)
Creates and registers an instance of an MBean in the remote object server. |
ObjectInstance |
createMBean(java.lang.String className,
ObjectName name,
ObjectName loaderName,
java.lang.Object[] params,
java.lang.String[] signature)
Creates and registers an instance of an MBean in the remote object server. |
void |
disconnect()
Terminates the communication with the MBeanServer . |
void |
disconnect(boolean local)
Terminates the communication with the MBeanServer . |
java.lang.Object |
getAttribute(ObjectName name,
java.lang.String attribute)
Gets the value of a specific attribute of a named MBean. |
AttributeList |
getAttributes(ObjectName name,
java.lang.String[] attributes)
Allows you to retrieve the values of several attributes of an MBean. |
int |
getCacheSize()
Get the cache size of notifications waiting to be forwarded. |
java.lang.String |
getClassForProxyMBean(ObjectInstance instance)
Given the object name and the Java class name of the MBean ( ObjectInstance ), this
method returns the name of the Java class of the corresponding Proxy MBean. |
java.lang.ClassLoader |
getClassLoader()
Deprecated. No more useful. |
java.lang.String |
getDefaultDomain()
Returns the default domain used for the MBean naming. |
java.util.Set |
getGenericProxies(java.util.Set instances)
Deprecated. It is not multi-user safe. |
GenericProxy |
getGenericProxy(ObjectInstance instance)
Deprecated. It is not multi-user safe. |
int |
getHeartBeatPeriod()
Gets the heartbeat period in milliseconds. |
int |
getHeartBeatRetries()
Gets the number of retries. |
java.lang.String |
getHost()
|
Mapper |
getMapper()
Deprecated. No more useful. |
java.lang.Integer |
getMBeanCount()
Returns the number of MBeans controlled by the MBeanServer . |
MBeanInfo |
getMBeanInfo(ObjectName name)
This method supplies the exposed attributes and actions of the MBean. |
ConnectorAddress |
getMBeanServerAddress()
Returns the exact address of the MBeanServer to which the ConnectorClient is
connected. |
java.lang.String |
getMBeanServerId()
Returns a string which represents the MBeanServer identification. |
int |
getMode()
Gets the notification forwarding mode. |
void |
getNotifications()
Retrieves all notifications in the cache. |
ObjectInstance |
getObjectInstance(ObjectName name)
Gets the ObjectInstance for a given MBean registered with the MBeanServer . |
OperationContext |
getOperationContext()
Get the OperationContext that was last given to setOperationContext, or null if setOperationContext was never called. |
int |
getOverflowCount()
Get the number of notifications discarded since last forwarding because the cache limit has been reached. |
int |
getOverflowMode()
Return whether to discard the oldest message ( DISCARD_OLD ) or the
the newest meesage (DISCARD_NEW ), if the cache size excceds. |
int |
getPeriod()
Gets the period for notification forwarding in milliseconds. |
Proxy |
getProxyMBean(ObjectInstance instance)
Deprecated. It is not multi-user safe. |
java.util.Set |
getProxyMBeans(java.util.Set instances)
Deprecated. It is not multi-user safe. |
java.lang.Object |
invoke(ObjectName name,
java.lang.String methodName,
java.lang.Object[] arguments,
java.lang.String[] signature)
Invokes a method of an MBean. |
boolean |
isConnected()
Checks whether a communication with the MBeanServer is established. |
boolean |
isInstanceOf(ObjectName name,
java.lang.String className)
Returns true if the MBean specified is an instance of the specified class, false otherwise. |
boolean |
isRegistered(ObjectName name)
Checks whether an MBean, identified by its object name, is already registered with the MBeanServer . |
java.util.Set |
queryMBeans(ObjectName name,
QueryExp query)
Gets MBeans controlled by the MBeanServer . |
java.util.Set |
queryNames(ObjectName name,
QueryExp query)
Gets the names of MBeans controlled by the MBeanServer . |
void |
removeHeartBeatNotificationListener(NotificationListener listener)
Removes the specified heartbeat listener so that it no longer receives heartbeat notifications from this connector client. |
void |
removeNotificationListener(ObjectName name,
NotificationListener listener)
Removes a listener from a registered MBean. |
void |
removeProxy(Proxy proxy)
Deprecated. No more useful. |
void |
setAttribute(ObjectName name,
Attribute attribute)
Sets the value of a specific attribute of a named MBean. |
AttributeList |
setAttributes(ObjectName name,
AttributeList attributes)
Allows you to modify the values of several attributes of an MBean. |
int |
setCacheSize(int size,
boolean discardOverflow)
Sets the cache size of notifications waiting to be forwarded. |
void |
setClassLoader(java.lang.ClassLoader loader)
Deprecated. No more useful. |
void |
setHeartBeatPeriod(int period)
Specifies the heartbeat period in milliseconds. |
void |
setHeartBeatRetries(int nretries)
Sets the number of retries. |
void |
setMapper(Mapper mapper)
Deprecated. No more useful. |
void |
setMode(int mode)
Sets the notification forwarding mode. |
void |
setOperationContext(OperationContext c)
Set the OperationContext of this connector. |
void |
setOverflowCount(int count)
Sets the number of notifications discarded, this number indicates the number of notifications discarded because the cache limit has been reached. |
void |
setOverflowMode(int of)
Specify whether to discard the oldest message ( DISCARD_OLD ) or the
the newest message (DISCARD_NEW ), if the cache size excceds. |
void |
setPeriod(int period)
Specifies the period for notification forwarding in milliseconds. |
void |
setTimeout(int timeout)
|
void |
unregisterMBean(ObjectName name)
Deletes an instance of an MBean in the remote MBean server. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public RmiConnectorClient()
public RmiConnectorClient(java.net.InetAddress add)
public RmiConnectorClient(java.net.InetAddress add, int commTimeout)
Method Detail |
public void setTimeout(int timeout)
public java.lang.String getHost()
public void setMode(int mode) throws java.lang.IllegalArgumentException
PUSH_MODE
, it is the agent to push notifications to the client, if set to
PULL_MODE
, it is the client to retrive notifications from the agent.
The default value is PUSH_MODE
.
mode
- set to PUSH_MODE
or PULL_MODE
.PUSH_MODE
nor PULL_MODE
.public int getMode()
PUSH_MODE
, it is the agent to push notifications to the client, if set to
PULL_MODE
, it is the client to retrive notifications from the agent.
The default value is PUSH_MODE
.
public void getNotifications()
public void clearCache()
public void setPeriod(int period)
If set to equal to or less than zero and the pull mode is used, no pull will be done. A user should
explicitly call getNotifications
to retrieve all notifications in the cache.
This method has no effect in the push mode in the current implementation.
The default value is 1000 milliseconds.
period
- The period in milliseconds.public int getPeriod()
The default value is 1000 milliseconds.
public int setCacheSize(int size, boolean discardOverflow)
If set to NO_CACHE_LIMIT
, notifications will never be discarded,
but this may lead to OutOfMemory errors under stressed conditions. If set to zero, any
notification will be discarded without being sent.
The default value is NO_CACHE_LIMIT
.
size
- the maximum number of notifications in the cache.discardOverflow
- effective only if current number of cached notifications exceeds the new size:
if true, discard excess notifications; if false, the cache size will not be changed.public int getCacheSize()
If set to NO_CACHE_LIMIT
or a negative value, notifications will never be discarded,
but this may lead to OutOfMemory errors under stressed conditions.
The default value is NO_CACHE_LIMIT
.
public void setOverflowCount(int count)
This count will be reset to zero if no more listener exists at the client side, because in this case the notification server will remove all information about this notification client.
count
- The new value to set to overflow count.public int getOverflowCount()
This count will be reset to zero if no more listener exists at the client side, because in this case the notification server will remove all information about this notification client.
public void setOverflowMode(int of) throws java.lang.IllegalArgumentException
DISCARD_OLD
) or the
the newest message (DISCARD_NEW
), if the cache size excceds.
The default mode is DISCARD_OLD
.
of
- The overflow mode to specify.DISCARD_NEW
nor DISCARD_OLD
.public int getOverflowMode()
DISCARD_OLD
) or the
the newest meesage (DISCARD_NEW
), if the cache size excceds.
The default mode is DISCARD_OLD
.
public void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, java.lang.Object handback) throws InstanceNotFoundException
name
- The name of the MBean on which the listener should be added.listener
- The listener object which will handle the notifications emitted by the registered MBean.filter
- The filter object. If filter is null, no filtering will be performed before handling notifications.handback
- The context to be sent to the listener when a notification is emitted.public void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException
name
- The name of the MBean on which the listener should be removed.listener
- The listener object which will handle the notifications emitted by the registered MBean.
This method will remove all the information related to this listener.public int getHeartBeatPeriod()
The default value is 10000 milliseconds.
public void setHeartBeatPeriod(int period)
If set to zero no check will be carried out for the associated connector server being alive. As the heartbeat is driven by the manager this would also prevent the connector server from being aware of the aliveness of this connector client.
The default value is 10000 milliseconds.
period
- The heartbeat period in milliseconds.public int getHeartBeatRetries()
The default value is 6 times.
public void setHeartBeatRetries(int nretries)
The default value is 6 times.
nretries
- The number of retries.public void addHeartBeatNotificationListener(NotificationListener listener, NotificationFilter filter, java.lang.Object handback)
listener
- The heartbeat listener which will handle the notifications emitted by the connector client.filter
- The filter object. If filter is null, no filtering will be performed before handling notifications.handback
- The context to be sent to the listener when a notification is emitted.public void removeHeartBeatNotificationListener(NotificationListener listener)
listener
- The heartbeat listener which will handle the notifications emitted by the connector client.public void setOperationContext(OperationContext c)
Set the OperationContext of this connector. This context will be sent along with each request and can be recovered by the server, which can make it available to the operations it invokes.
The saved OperationContext will be a clone of the object
c
made using its clone
method.
c
- the new OperationContext. It may be null to indicate that
there is no context. The previous OperationContext, if any, is lost.c
does not implement the Cloneable
interface.public OperationContext getOperationContext()
public java.lang.String connect(ConnectorAddress MBeanServerAddress)
MBeanServer
. All the information
needed to identify the MBeanServer
to contact and the protocol to
be used is contained in the object of the type ConnectorAddress
passed as
a parameter. For then RmiconnectotClient
, the ConnectorAddress
should
of class RmiConnectorAddress
. If a communication problem occurs this method will throw
a CommunicationException
(JMRuntimeException
).
If the RemoteMBeanServer
had already been connected and disconnected with an MBeanServer
identified by its MBeanServerId
, and if the MBeanServer
reachable by the
MBeanServerAddress
parameter doesn't
have to same MBeanServerId
, the java.lang.IllegalAccessException
is thrown.MBeanServerAddress
- The exact MBeanServer
address to contact (MBeanServer
identification, protocol specification).MBeanServer
with which the communication is established.RemoteMBeanServer
was already connected or a problem was
encountered in the connection to the RMI Connector Server
.RemoteMBeanServer
has already been connected and disconnected
and the specified ConnectorAddress
doesn't identify the same MBeanServer
.public void disconnect()
MBeanServer
.public void disconnect(boolean local)
MBeanServer
.public boolean isConnected()
MBeanServer
is established.public ConnectorAddress getMBeanServerAddress()
MBeanServer
to which the ConnectorClient is
connected. The address is of the type ConnectorAddress
.MBeanServer
, or null if the ConnectorClient is
not connected.public java.lang.String getMBeanServerId()
MBeanServer
identification. This String comes from
the MBeanServerDelegate
Mbean.
If the Connector Client has not already been connected, it returns null.
If the Connector Client has been connected and disconnected, getMBeanServerId
still returns
the previous MBeanServer
identification.getMbeanServerId
still returns
the previous MbeanServer
identification.public ObjectInstance createMBean(java.lang.String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
ObjectInstance
representing the remote MBean created.className
- The name of the Java class to be used by the MBeanServer
for creating the MBean.name
- The name of the MBean to be created.ObjectInstance
representing the newly created MBean.preRegister
(MBeanRegistration
interface) method of the MBean has thrown an exception. The MBean will not be registered.public ObjectInstance createMBean(java.lang.String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
ObjectInstance
representing the remote MBean created.className
- The name of the Java class to be used by the MBeanServer
for creating the MBean.name
- The name of the MBean to be created.loaderName
- The name of the class loader to be used by the MBeanServer
.ObjectInstance
representing the newly created MBean.preRegister
(MBeanRegistration
interface) method of the MBean has thrown an exception. The MBean will not be registered.MBeanServer
.public ObjectInstance createMBean(java.lang.String className, ObjectName name, java.lang.Object[] params, java.lang.String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
ObjectInstance
representing the remote MBean created.className
- The name of the Java class to be used by the MBeanServer
for creating
the MBean.name
- The name of the MBean to be created.params
- An array containing the parameters of the constructor to be invoked.
A parameter can be any Java object that is serializable
.signature
- An array containing the signature of the constructor to be invoked.ObjectInstance
representing the newly created MBean.preRegister
(MBeanRegistration
interface) method of the MBean has thrown an exception. The MBean will not be registered.public ObjectInstance createMBean(java.lang.String className, ObjectName name, ObjectName loaderName, java.lang.Object[] params, java.lang.String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
ObjectInstance
representing the remote MBean created.className
- The name of the Java class to be used by the MBeanServer
for creating
the MBean.name
- The name of the MBean to be created.loaderName
- The name of the class loader to be used by the MBeanServer
.params
- An array containing the parameters of the constructor to be invoked.
A parameter can be any Java object that is serializable
.signature
- An array containing the signature of the constructor to be invoked.ObjectInstance
representing the newly created MBean.preRegister
(MBeanRegistration
interface) method of the MBean has thrown an exception. The MBean will not be registered.MBeanServer
.public void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
ProxyMBean
and/or GenericProxy
) object from the ProxyFactory.name
- The name of the MBean to be deleted.MBeanServer
.preDeregister
(MBeanRegistration
interface) method of the MBean has thrown an exception.public Proxy getProxyMBean(ObjectInstance instance) throws ProxyMBeanInstantiationException
ProxyMBean
representing a remote MBean identified by this ObjectInstance
.
If the ProxyMBean
cannot be instantiated the method throws a ProxyMBeanInstantiationException
.instance
- The object instance identifying the MBean.ProxyMBean
representing the MBean.ProxyMBean
.public java.util.Set getProxyMBeans(java.util.Set instances) throws ProxyMBeanInstantiationException
ProxyMBean
s representing MBeans controlled by the remote MBeanServer.instances
- The set of object instances identifying the MBeans.ProxyMBean
s representing the MBeans.ProxyMBean
s.public void addProxy(Proxy proxy)
public void removeProxy(Proxy proxy)
public GenericProxy getGenericProxy(ObjectInstance instance)
GenericProxy
representing a remote MBean identified by this ObjectInstance
.The
- Objectname
of the Java class to be used by the MBeanServer
to create the
MBean.instance
- The object instance identifying the MBean.GenericProxy
object associated with the MBean.public java.util.Set getGenericProxies(java.util.Set instances)
instances
- The set of object instances identifying the MBeans.public boolean isRegistered(ObjectName name)
MBeanServer
.name
- The object name of the MBean to be checked.MBeanServer
, false otherwise.public java.util.Set queryNames(ObjectName name, QueryExp query)
MBeanServer
. This method
allows any of the following to be obtained: The names of all MBeans,
the names of a set of MBeans specified by pattern matching on the
ObjectName
and/or a Query expression, a specific MBean name (equivalent to
testing whether an MBean is registered). When the object name is
null or empty, all the objects are to be selected (and filtered if
a query is specified). It returns the set of ObjectName
s for the
MBeans selected.name
- The object name pattern identifying the MBean names to be retrieved. If
null or empty, the names of all the registered MBeans will be retrieved.query
- The query expression to be applied for selecting MBeans.ObjectName
s for the MBeans selected.public java.util.Set queryMBeans(ObjectName name, QueryExp query)
MBeanServer
. This method allows any
of the following to be obtained: All MBeans, a set of MBeans specified
by pattern matching on the ObjectName
and/or a Query expression, a
specific MBean. When the object name is null or empty, all objects are
to be selected (and filtered if a query is specified). It returns the
set of ObjectInstance
for the selected MBeans.name
- The object name pattern identifying the MBeans to be retrieved. If
null or empty all the MBeans registered will be retrieved.query
- The query expression to be applied for selecting MBeans.ObjectInstance
for the MBeans selected.public java.lang.Integer getMBeanCount()
MBeanServer
.public java.lang.String getDefaultDomain()
public boolean isInstanceOf(ObjectName name, java.lang.String className) throws InstanceNotFoundException
name
- The ObjectName
of the MBean.className
- The name of the class.public ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException
ObjectInstance
for a given MBean registered with the MBeanServer
.name
- The object name of the MBean.ObjectInstance
associated to the MBean specified by name.MBeanServer
.public java.lang.Object getAttribute(ObjectName name, java.lang.String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
name
- The object name of the MBean from which the attribute is to be retrieved.attribute
- The name of the attribute to be retrieved.serializable
.MBeanServer
.public AttributeList getAttributes(ObjectName name, java.lang.String[] attributes) throws InstanceNotFoundException, ReflectionException
name
- The object name of the MBean from within which the attributes are
to be retrieved.attributes
- A list of the attributes to be retrieved.serializable
.public void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
name
- The name of the MBean within which the attribute is to be set.attribute
- The modification to be performed: The identification of the attribute to
be set, the value it is to be set to, and the operator to apply.
The value of the attribute can be any Java object that is serializable
.public AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException
name
- The object name of the MBean from within which the attributes are
to be set.attributes
- A list of the attributes to be set, their values and, optionally, the
operators to apply.
The value of the attributes can be any Java object that is serializable
.serializable
.public java.lang.Object invoke(ObjectName name, java.lang.String methodName, java.lang.Object[] arguments, java.lang.String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException
name
- The name of the MBean on which the method is to be invoked.methodName
- The name of the method to be invoked.arguments
- An array containing the arguments to be set when the method is invoked.
An argument can be any Java object that is serializable
.signature
- An array containing the signature of the method.serializable
.java.lang.Exception
thrown while trying to invoke the method.public MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
MBeanInfo
object.name
- The names of the MBean whose attributes and actions will be returned.MBeanInfo
which allows all methods and actions of
this MBean to be retrieved.java.lang.Exception
thrown while
trying to invoke the getMBeanInfo
method.public java.lang.ClassLoader getClassLoader()
ClassLoader
used to retrieve the classes for the creation
of ProxyMBean
s.ClassLoader
currently in use.public void setClassLoader(java.lang.ClassLoader loader)
ProxyMBean
s.ClassLoader
- The instance of the ClassLoader
to use.public java.lang.String getClassForProxyMBean(ObjectInstance instance) throws ProxyMBeanInstantiationException
ObjectInstance
), this
method returns the name of the Java class of the corresponding Proxy MBean.
The returned name can be null, if there is no Java class corresponding to
the needed Proxy MBean.instance
- The ObjectInstance
of the MBean which is represented by the ProxyMBean
.ProxyMBean
.public Mapper getMapper()
null
if it is the default mapper.
The default mapper is an instance of the DefaultMapper
class.public void setMapper(Mapper mapper)
mapper
- The instance of the mapping service to be used. If the given
mapper value is null
then the mapper service will be set to the default mapper.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |