Session Restoration
Saving Session Information
Dynamo saves a session by writing out property values of selected session-scoped
Nucleus components. The SessionSaverServlet, at
/atg/dynamo/servlet/pipeline/SessionSaverServlet, has a propertyList property that
specifies object names and properties to be saved. By default, this property points to
the sessionBackupServerPropertyList property in the central configuration component,
/atg/dynamo/Configuration. The value of this property is a comma-separated list of
object names and property names, using the following syntax:
sessionBackupServerPropertyList=/Nucleus address.property name
For example, the following setting saves the userId and lastPage properties of the
/myservice/profile component:
sessionBackupServerPropertyList=/myservice/profile.userId,\
/myservice/profile.lastPage
Restoring Session Information
When Dynamo receives a request that includes a session ID that it doesn't recognize as
one of its active sessions, it looks the session up in the Session Backup Server and
attempts to restore the session, using the saved information for that session. The
Session Backup Server sends back the list of Nucleus objects and properties saved for
that session. The Dynamo server resolves the name of each Nucleus object, giving the
objects a chance to be initialized from their properties files. Then the Dynamo server
calls the appropriate setX methods to put the saved property values into the object.
After all objects are restored with new property values, those objects implementing
atg.servlet.sessionsaver.Restoreable will have their sessionRestored() method called.
This gives them a chance to perform any additional initialization required after being
restored from a Session Backup Server.
|