|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectcom.sun.jdmk.comm.CommunicatorServer
com.sun.management.comm.CommunicatorServer
Defines generic behavior for the server part of a connector or an adaptor.
Most connectors or adaptors extend CommunicatorServer
and inherit this behavior. Connectors or adaptors that do not fit into
this model do not extend
CommunicatorServer.
A CommunicatorServer is an active object, it listens for
client requests and processes them in its own thread. When necessary,
a CommunicatorServer
creates other threads to process multiple requests concurrently.
A CommunicatorServer object can be stopped by calling the
stop method. When it is stopped, the
CommunicatorServer no longer listens to client
requests and no longer holds any thread or communication resources.
It can be started again by calling the start method.
A CommunicatorServer has a State attribute
which reflects its activity.
| CommunicatorServer | State |
|---|---|
stopped | OFFLINE |
starting | STARTING |
running | ONLINE |
stopping | STOPPING |
The STARTING state marks the transition from
OFFLINE to ONLINE.
The STOPPING state marks the transition from
ONLINE to OFFLINE.
This occurs when the CommunicatorServer is
finishing or interrupting active requests.
When a CommunicatorServer is unregistered from the
MBeanServer, it is stopped automatically.
When the value of the State attribute changes the
CommunicatorServer sends a
AttributeChangeNotification to the
registered listeners, if any.
| Field Summary |
| Fields inherited from class com.sun.jdmk.comm.CommunicatorServer |
HTML_TYPE, HTTP_TYPE, HTTPS_TYPE, OFFLINE, ONLINE, RMI_TYPE, SNMP_TYPE, STARTING, STOPPING |
| Constructor Summary | |
CommunicatorServer(int connectorType)
Instantiates a CommunicatorServer. |
|
| Method Summary | |
void |
addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
Adds a listener for the notifications emitted by this CommunicatorServer. |
protected abstract void |
doBind()
|
protected abstract void |
doError(Exception e)
|
protected abstract void |
doProcess()
doProcess() is called after doReceive():
it should process the requests of the incoming client. |
protected abstract void |
doReceive()
doReceive() should block until a client is available. |
protected abstract void |
doUnbind()
doUnbind() is called whenever the connector goes
OFFLINE, except if doBind() has
thrown an exception. |
String |
getHost()
Gets the host name used by this CommunicatorServer. |
MBeanServer |
getMBeanServer()
Get the MBeanServer object to which incoming requests are
sent. |
MBeanNotificationInfo[] |
getNotificationInfo()
Returns an array of MBeanNotificationInfo objects describing the notification types sent by this CommunicatorServer. |
int |
getPort()
Gets the port number used by this CommunicatorServer. |
abstract String |
getProtocol()
Gets the protocol being used by this CommunicatorServer. |
int |
getState()
Gets the state of this CommunicatorServer as an integer. |
String |
getStateString()
Gets the state of this CommunicatorServer as a string. |
boolean |
isActive()
Tests whether the CommunicatorServer is active. |
void |
postDeregister()
Do nothing. |
void |
postRegister(Boolean registrationDone)
|
void |
preDeregister()
Stop the connector. |
ObjectName |
preRegister(MBeanServer server,
ObjectName name)
Preregister method of connector. |
void |
removeNotificationListener(NotificationListener listener)
Removes the specified listener from this CommunicatorServer. |
void |
run()
For Java DMK internal use only. |
void |
setMBeanServer(MBeanServer newMBS)
Set the MBeanServer object to which incoming
requests are sent. |
void |
setPort(int port)
Sets the port number used by this CommunicatorServer. |
void |
start()
Starts this CommunicatorServer. |
void |
stop()
Stops this CommunicatorServer. |
boolean |
waitState(int wantedState,
long timeout)
Waits until either the State attribute of this MBean equals the specified wantedState parameter, or the specified timeout has elapsed. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public CommunicatorServer(int connectorType)
throws IllegalArgumentException
CommunicatorServer.
connectorType - Indicates the connector type. Possible values are:
RMI_TYPE, HTTP_TYPE, HTML_TYPE, SNMP_TYPE, HTTPS_TYPE.
java.lang.IllegalArgumentException - This connector type is not correct.
IllegalArgumentException| Method Detail |
public void start()
CommunicatorServer.
Has no effect if this CommunicatorServer is
ONLINE or STOPPING.
start in interface CommunicatorServerMBeanstart in class CommunicatorServerpublic void stop()
CommunicatorServer.
Has no effect if this CommunicatorServer is
OFFLINE or STOPPING.
stop in interface CommunicatorServerMBeanstop in class CommunicatorServerpublic boolean isActive()
CommunicatorServer is active.
isActive in interface CommunicatorServerMBeanisActive in class CommunicatorServerONLINE; false otherwise.
public boolean waitState(int wantedState,
long timeout)
Waits until either the State attribute of this MBean equals the
specified wantedState parameter, or the specified
timeout has elapsed. The method waitState
returns with a boolean value indicating whether the specified
wantedState parameter equals the value of this MBean's
State attribute at the time the method terminates.
Two special cases for the timeout parameter value are:
waitState
returns immediately (i.e. does not wait at all),waitState
waits until the value of this MBean's State attribute
is the same as the wantedState parameter (i.e. will
wait indefinitely if this condition is never met).
waitState in interface CommunicatorServerMBeanwaitState in class CommunicatorServerwantedState - The value of this MBean's State attribute to wait
for. wantedState can be one of:
CommunicatorServer.OFFLINE,
CommunicatorServer.ONLINE,
CommunicatorServer.STARTING,
CommunicatorServer.STOPPING.timeout - The maximum time to wait for, in milliseconds, if
positive. Infinite time out if 0, or no waiting at all if
negative.
true if the value of this MBean's State attribute
is the same as the wantedState parameter;
false otherwise.public int getState()
CommunicatorServer as an integer.
getState in interface CommunicatorServerMBeangetState in class CommunicatorServerONLINE, OFFLINE,
STARTING or STOPPING.public String getStateString()
CommunicatorServer as a string.
getStateString in interface CommunicatorServerMBeangetStateString in class CommunicatorServerpublic String getHost()
CommunicatorServer.
getHost in interface CommunicatorServerMBeangetHost in class CommunicatorServerCommunicatorServer.public int getPort()
CommunicatorServer.
getPort in interface CommunicatorServerMBeangetPort in class CommunicatorServerCommunicatorServer.
public void setPort(int port)
throws IllegalStateException
CommunicatorServer.
setPort in interface CommunicatorServerMBeansetPort in class CommunicatorServerport - The port number used by this CommunicatorServer.
IllegalStateException - This method has been invoked
while the communicator was ONLINE or STARTING.public abstract String getProtocol()
CommunicatorServer.
getProtocol in interface CommunicatorServerMBeangetProtocol in class CommunicatorServerpublic void run()
The run method executed by this connector's main thread.
run in interface Runnablerun in class CommunicatorServer
protected abstract void doError(Exception e)
throws CommunicationException
doError in class CommunicatorServerCommunicationException
protected abstract void doBind()
throws CommunicationException,
InterruptedException
doBind in class CommunicatorServerCommunicationException
InterruptedException
protected abstract void doReceive()
throws CommunicationException,
InterruptedException
doReceive() should block until a client is available.
If this method throws an exception, doProcess() is not
called but doUnbind() is called then run()
stops.
doReceive in class CommunicatorServerCommunicationException
InterruptedException
protected abstract void doProcess()
throws CommunicationException,
InterruptedException
doProcess() is called after doReceive():
it should process the requests of the incoming client.
If it throws an exception, doUnbind() is called and
run() stops.
doProcess in class CommunicatorServerCommunicationException
InterruptedException
protected abstract void doUnbind()
throws CommunicationException,
InterruptedException
doUnbind() is called whenever the connector goes
OFFLINE, except if doBind() has
thrown an exception.
doUnbind in class CommunicatorServerCommunicationException
InterruptedExceptionpublic MBeanServer getMBeanServer()
MBeanServer object to which incoming requests are
sent. This is either the MBean server in which this connector is
registered, or an MBeanServerForwarder leading to that
server.
getMBeanServer in class CommunicatorServer
public void setMBeanServer(MBeanServer newMBS)
throws IllegalArgumentException,
IllegalStateException
MBeanServer object to which incoming
requests are sent. This must be either the MBean server in
which this connector is registered, or an
MBeanServerForwarder leading to that server. An
MBeanServerForwarder mbsf leads to an
MBean server mbs if
mbsf.getMBeanServer() is either mbs
or an MBeanServerForwarder leading to
mbs.
setMBeanServer in class CommunicatorServerIllegalArgumentException - if newMBS is neither
the MBean server in which this connector is registered nor an
MBeanServerForwarder leading to that server.
IllegalStateException - This method has been invoked
while the communicator was ONLINE or STARTING.
public void addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
throws IllegalArgumentException
AttributeChangeNotification,
sent when the State attribute of this CommunicatorServer
changes.
addNotificationListener in interface NotificationBroadcasteraddNotificationListener in class CommunicatorServerlistener - The listener object which will handle the emitted
notifications.filter - The filter object. If filter is null, no filtering will
be performed before handling notifications.handback - An object which will be sent back unchanged to the
listener when a notification is emitted.
IllegalArgumentException - Listener parameter is null.
public void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException
removeNotificationListener in interface NotificationBroadcasterremoveNotificationListener in class CommunicatorServerlistener - The listener object to be removed.
ListenerNotFoundException - The listener is not registered.public MBeanNotificationInfo[] getNotificationInfo()
AttributeChangeNotification,
sent when the State attribute of this CommunicatorServer
changes.
getNotificationInfo in interface NotificationBroadcastergetNotificationInfo in class CommunicatorServer
public ObjectName preRegister(MBeanServer server,
ObjectName name)
throws Exception
preRegister in interface MBeanRegistrationpreRegister in class CommunicatorServerserver - The MBeanServer in which the MBean will be
registered.name - The object name of the MBean.
Exception - This exception should be caught by
the MBeanServer and re-thrown
as an MBeanRegistrationException.public void postRegister(Boolean registrationDone)
postRegister in interface MBeanRegistrationpostRegister in class CommunicatorServerregistrationDone - Indicates whether or not the MBean has been
successfully registered in the MBeanServer.
The value false means that the registration phase has failed.
public void preDeregister()
throws Exception
preDeregister in interface MBeanRegistrationpreDeregister in class CommunicatorServerException - This exception should be caught by
the MBeanServer and re-thrown
as an MBeanRegistrationException.public void postDeregister()
postDeregister in interface MBeanRegistrationpostDeregister in class CommunicatorServer
|
FCS Release jdmk-5_1-b34.1 2005.02.10_16:46:09_MET |
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||