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 reactivated 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, Second 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.