Remote Object Activation
Automatic activation of remote objects was added to RMI as of Java 1.2. The activation subsystem in RMI provides you with two basic features: the ability to have remote objects instantiated (activated) on demand by client requests and the ability for remote object references to remain valid across server crashes, making the references persistent. These features can be quite useful in certain types of distributed applications.
For example, think back to the AccountManager
class we discussed when we
talked about factory objects. We might not want to keep the AccountManager
running on our server 24 hours a day; perhaps it consumes lots
of server resources (memory, database connections, etc.), so we don’t
want it running unless it is being used. Using the RMI activation
service, we can set up the AccountManager
so that it doesn’t start
running until the first client requests an Account
. In addition, after some period of
inactivity, we can have the AccountManager
shut down to conserve server
resources and then reactivate the next time a client asks for an
Account
.
If a remote object is made activatable, it can be registered
with the RMI registry without actually being instantiated. Normally,
RMI remote objects (based on the UnicastRemoteObject
interface) provide only
nonpersistent references to themselves. Such a reference can be created for a client only if the referenced object already exists in a remote Java VM. In addition, the remote reference is ...
Get Java Enterprise in a Nutshell, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.