java.rmi.activation

Class Activatable

public abstract class Activatable extends RemoteServer

A common ancestor for the implementations of the activatable objects. Such objects require persistent access over time and can be activated by the system. The derived classes also implements the needed interface of some remote object and usually have the two parameter constructor, the first parameter being the {@link ActivationID} and the second the {@link MarshalledObject}. Activatable is the main class that developers need to use to implement and manage activatable objects. It also contains methods for making activatable remote objects that are not derived from the Activatable class.
Constructor Summary
protected Activatable(String codebase, MarshalledObject data, boolean restart, int port)
This constructor is used to register export the object on the given port.
protected Activatable(String codebase, MarshalledObject data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
This constructor is used to register export the object on the given port, additionally specifying the socket factories.
protected Activatable(ActivationID anId, int port)
Creates the new instance of activatable with the given activation id and is listening at the given port.
protected Activatable(ActivationID anId, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
Creates the new instance of activatable with the given activation id and is listening at the given port, using the specified client and server sockets factories.
Method Summary
static Remoteexport(ActivationID id, Remote obj, int port, RMIServerSocketFactory serverSocketFactory)
Create and export the new remote object, making it available at the given port, using sockets, produced by the specified factories.
static ActivationIDexportObject(Remote obj, String location, MarshalledObject data, boolean restart, int port)
Register and export the object that activatable object that is not derived from the Activatable super class.
static ActivationIDexportObject(Remote obj, String location, MarshalledObject data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
Register and export the object that activatable object that is not derived from the Activatable super class.
static RemoteexportObject(Remote obj, ActivationID id, int port)
During activation, this exportObject method should be invoked explicitly by the activatable object, that does is not derived from the Activatable class.
static RemoteexportObject(Remote obj, ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
During activation, this exportObject method should be invoked explicitly by the activatable object, that does is not derived from the Activatable class.
protected ActivationIDgetID()
Get the objects activation identifier.
static booleaninactive(ActivationID id)
Inactivates and unexports the object.
static ObjIDmakeId(ActivationID aid)
Make the object ID from the activation ID.
static Remoteregister(ActivationDesc desc)
This method registers an activatable object.
static booleanunexportObject(Remote obj, boolean force)
Make the remote object unavailable for incoming calls.
static voidunregister(ActivationID id)
Unregister the object (the object will no longer be activable with that id)

Constructor Detail

Activatable

protected Activatable(String codebase, MarshalledObject data, boolean restart, int port)
This constructor is used to register export the object on the given port. A subclass of the Activatable class calls this constructor to register and export the object during initial construction. As a side-effect of activatable object construction, the remote object is both "registered" with the activation system and "exported" (on an anonymous port, if port is zero) to the RMI runtime so that it is available to accept incoming calls from clients.

Parameters: codebase the object code base url data the data, needed to activate the object. restart specifies reactivation mode after crash. If true, the object is activated when activator is restarted or the activation group is restarted. If false, the object is only activated on demand. This flag does has no effect during the normal operation (the object is normally activated on demand). port the port, on which the object will become available. The value 0 means anonymous port.

Throws: ActivationException if the activation failed RemoteException if the remote call failed.

Activatable

protected Activatable(String codebase, MarshalledObject data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
This constructor is used to register export the object on the given port, additionally specifying the socket factories. A subclass of the Activatable class calls this constructor to register and export the object during initial construction.

Parameters: codebase the object code base url data the data, needed to activate the object. restart specifies reactivation mode after crash. If true, the object is activated when activator is restarted or the activation group is restarted. If false, the object is only activated on demand. This flag does has no effect during the normal operation (the object is normally activated on demand). port the port, on which the object will become available. The value 0 means anonymous port. csf the client socket factory ssf the server socket factory

Throws: ActivationException if the activation failed RemoteException if the remote call failed.

Activatable

protected Activatable(ActivationID anId, int port)
Creates the new instance of activatable with the given activation id and is listening at the given port. A subclass of the Activatable class calls this constructor when the object itself is activated via its special "activation" constructor with the two parameters ({@link ActivationID}, {@link MarshalledObject}). As a side effect, the object is exported and is available to accept incomming calls.

Parameters: anId the activation id port the port, on which the activatable will be listening

Throws: RemoteException if the activation failed.

Activatable

protected Activatable(ActivationID anId, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
Creates the new instance of activatable with the given activation id and is listening at the given port, using the specified client and server sockets factories. A subclass of the Activatable class calls this constructor when the object itself is activated via its special "activation" constructor with the two parameters ({@link ActivationID}, {@link MarshalledObject}). As a side effect, the object is exported and is available to accept incomming calls.

Parameters: anId the activation id port the port, on which the activatable will be listening csf the client socket factory ssf the server socket factory

Throws: RemoteException if the remote call failed

Method Detail

export

public static Remote export(ActivationID id, Remote obj, int port, RMIServerSocketFactory serverSocketFactory)
Create and export the new remote object, making it available at the given port, using sockets, produced by the specified factories.

Parameters: port the port, on that the object should become available. Zero means anonymous port. serverSocketFactory the server socket factory

exportObject

public static ActivationID exportObject(Remote obj, String location, MarshalledObject data, boolean restart, int port)
Register and export the object that activatable object that is not derived from the Activatable super class. It creates and registers the object activation descriptor. There is no need to call this method if the object extends Activable, as its work is done in the constructor {@link #Activatable(String, MarshalledObject, boolean, int)}.

Parameters: obj the object, that is exported, becoming available at the given port. location the object code location (codebase). data the data, needed to activate the object restart the restart mode port the port, where the object will be available

Returns: the created object activation ID.

Throws: ActivationException if the activation group is not active RemoteException if the registration or export fails

exportObject

public static ActivationID exportObject(Remote obj, String location, MarshalledObject data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
Register and export the object that activatable object that is not derived from the Activatable super class. It creates and registers the object activation descriptor. There is no need to call this method if the object extends Activable, as its work is done in the constructor {@link #Activatable(String, MarshalledObject, boolean, int, RMIClientSocketFactory, RMIServerSocketFactory)}

Parameters: obj the object, that is exported, becoming available at the given port. location the object code location (codebase). data the data, needed to activate the object restart the restart mode port the port, where the object will be available csf the client socket factory ssf the server socket factory

Returns: the created object activation ID.

Throws: ActivationException if the activation group is not active RemoteException if the registration or export fails

exportObject

public static Remote exportObject(Remote obj, ActivationID id, int port)
During activation, this exportObject method should be invoked explicitly by the activatable object, that does is not derived from the Activatable class. There is no need to call this method if the object extends Activable, as its work is done in the constructor {@link #Activatable(ActivationID, int)}

Parameters: obj the object id the known activation id port the object port

Returns: the remote stub of the activatable object

Throws: RemoteException if the object export fails

exportObject

public static Remote exportObject(Remote obj, ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
During activation, this exportObject method should be invoked explicitly by the activatable object, that does is not derived from the Activatable class. There is no need to call this method if the object extends Activable, as its work is done in the constructor {@link #Activatable(ActivationID, int)}

Parameters: obj the object id the known activation id port the object port csf the client socket factory ssf the server socket factory

Returns: the remote stub of the activatable object

Throws: RemoteException if the object export fails

getID

protected ActivationID getID()
Get the objects activation identifier.

Returns: the object activation identifier

inactive

public static boolean inactive(ActivationID id)
Inactivates and unexports the object. The subsequent calls will activate the object again. The object is not inactivated if it is currently executing calls.

Parameters: id the id of the object being inactivated

Returns: true if the object has been inactivated, false if it has not been inactivated because of the running or pending calls.

Throws: UnknownObjectException if the object is unknown. ActivationException if the object group is not active RemoteException if the remote call fails

makeId

public static ObjID makeId(ActivationID aid)
Make the object ID from the activation ID. The same activation ID always produces the identical object id.

Parameters: aid the activation id

Returns: the object id

register

public static Remote register(ActivationDesc desc)
This method registers an activatable object. The object is expected to be on the anonymous port (null client and server socket factories).

Parameters: desc the object description.

Returns: the remote stub for the activatable object (the first call on this stub will activate the object).

Throws: UnknownGroupException if the object group identifier is unknown ActivationException if the activation system is not running RemoteException if the remote call fails

unexportObject

public static boolean unexportObject(Remote obj, boolean force)
Make the remote object unavailable for incoming calls. This method also unregisters the object, so it cannot be activated again by incomming call (unless registered).

Parameters: obj the object to unexport force if true, cancel all pending or running calls to that object (if false, the object with such calls is not unexported and false is returned by this method).

Returns: if the object was successfully unexported, false otherwise

Throws: NoSuchObjectException if such object is not known

unregister

public static void unregister(ActivationID id)
Unregister the object (the object will no longer be activable with that id)

Parameters: id the object id

Throws: UnknownObjectException if the id is unknown ActivationException if the activation system is not running RemoteException if the remote call fails.