aspose file tools
The moose likes Web Component Certification (SCWCD/OCPJWCD) and the fly likes HFJS Chapter-6 Page 260 - Lost in Session Migration Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login
JavaRanch » Java Forums » Certification » Web Component Certification (SCWCD/OCPJWCD)
Reply Bookmark "HFJS Chapter-6 Page 260 - Lost in Session Migration" Watch "HFJS Chapter-6 Page 260 - Lost in Session Migration" New topic
Author

HFJS Chapter-6 Page 260 - Lost in Session Migration

Peter Piddle
Greenhorn

Joined: Jun 13, 2012
Posts: 26

Hi All,
I am re going through chapter 6 where i felt weak and now on page 260 here is a whole concept i am unable to understand. Please help me understanding it.
It says that


Session Migration and Serialization
A container is required to migrate Serializable attributes(which assumes that all instances variables within the attribute are either Serializable or null.
But a Container is not required to use serialization as the mean of migrating HttpSession Object
What does that mean to you? Simple make sure you attribute class types are Serialzable and you never have to worry about it.
But if the yare not Serializable (which could be because on of the attribute object's instance varibales i snot Serializable), have your
attribute object class implement HttpSessionActivationListener and use the activation/passivation callsback to work around it.

The container is not required to use Serialization, so there's no guarantee that readObject() and writeObject() will be called on a
Serializable attribute or one of its instance variables!

If you are familiar with Serialization, you know that a class implements Serializable can also choose to implement a writeObject()method, called by the
VM container whenever an object is serialized and a readObject() method, called when an object is deserialized. A Serializable object can use these
methods to for example, set non-Serializable fields to null during Serialization(writeObject() and then restore the fields during deserialization(readObjet()).
But the methods won't necessarily be called during session migration! So if you need to save and restore instance variable state in your attribute, use
HttpSessionActivationListener, and use the two event calledbacks(sessionDidActivate() and sessionWillPassivate()) the way you would use readObjet()
and writeObject()


Please help. I am totally lost in what the book is trying to tell.
Thanks,


Peter Piddle - Skype(peter.piddle)
Frits Walraven
Rancher

Joined: Apr 07, 2010
Posts: 1039

Hi Peter,

The short version of the story is:

Migration of sessions will be handled by container-specific facilities. If you want to be notified before a session is migrated (because, for instance, you need to close some connections) or after a session is migrated (because you need to setup some connections) let your objects implement the HttpSessionActivationListener.

Regards,
Frits
Peter Piddle
Greenhorn

Joined: Jun 13, 2012
Posts: 26

Hi,
Thanks Frits. I was a little confused at the Serialization part. It says that


But a Container is not required to use serialization


Where earlier it says something like this
A container is required to migrate Serializable attributes


I am confused between these two statements. Can you elaborate on this part?
Thanks,
Peter
Frits Walraven
Rancher

Joined: Apr 07, 2010
Posts: 1039

Hi Peter,

In short: Session migration is moving the Session object from one JVM to another JVM.
But a Container is not required to use serialization

What they mean here is that the container is not required to use the "standard" java serialization mechanism (as described in "SCJP Sun Certified Programmer for Java 6 Exam, Sierra & Bates" Chapter 6 page 459), but the container provider can choose it's own mechanism for saving the state of objects in one JVM, transferring them, and recreating them on the other side (other JVM).
A container is required to migrate Serializable attributes

The one thing that the container provider is obliged to do is that it has to move all the objects, that implement the marker interface Serializable, in a Session to the other JVM.

Regards,
Frits
Peter Piddle
Greenhorn

Joined: Jun 13, 2012
Posts: 26

Hi Frits,

Thanks a ton man. I understood the concept clearly. Thanks again.

Regards,
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: HFJS Chapter-6 Page 260 - Lost in Session Migration
 
Similar Threads
Session Migration
HFSJ Mock Exam 1.5 Errata Discussion
HttpSessionActivationListener example
Doubts on Http session migration & Serialization
global session counter