This week's book giveaway is in the General Computing forum. We're giving away four copies of Arduino in Action and have Martin Evans, Joshua Noble, and Jordan Hochenbaum on-line! See this thread for details.
1. To support in-memory replication of HTTP session states, all servlet and JSP session data must be serializable. This means that every field in an object must be serializable or transient in order for the object to be considered serializable.
2. In an HTTP servlet that implements javax.servlet.http.HttpSession, use HttpSession.setAttribute (which replaces the deprecated putValue) to change attributes in a session object. If you set attributes in a session object with setAttribute, the object and its attributes are replicated in a cluster using in-memory replication. If you use other set methods to change objects within a session, WebLogic Server does not replicate those changes. Every time a change is made to an object that is in the session, setAttribute() should be called to update that object across the cluster.
Likewise, use removeAttribute (which, in turn, replaces the deprecated removeValue) to remove an attribute from a session object.
3. If you use multiple frames, you need to control frame access to session data as you can get unexpected behaviour in a cluster. The recommended rules to reduce problems are: In a given frameset, ensure that only one frame creates and modifies session data.
Always create the session in a frame of the first frameset your application uses (for example, create the session in the first HTML page that is visited). After the session has been created, access the session data only in framesets other than the first frameset.
EJBs ==== Always declare static fields as final. Failure to do this can easily cause problems when the EJBs are distributed as a field can have varying values in different JVMs.
Non-Clustered Objects ===================== Be aware that File services and Time services cannot be clustered.