Adding to my previous post.. I've found following comment on Sun's J2EE technical article (http:// java.sun.com/developer/technicalArticles/J2EE/clustering/) > Whenever you change an object's state in the HttpSession, call > session.setAttribute(...) to flag the object as changed and save the changes > to a backup server or databa
I guess this means that I do have to call setAttribute() at the end of each request, or redesign our framework so that this will be done automatically. On Jan 24, 8:58 pm, Soichi Hayashi <[email protected]> wrote: > Hello! > > (This is for Java version) > > I store an object that contains various information in the session. I > initialize the object if it doesn't exist, and I call > session.setAttribute() to bind this object right after I instantiate > it. I then access this object as user interact with my application, > and I don't call setAttribute again since there was no way to know > when user finish updating this object (by design). > > This worked fine until I ported my app to GAE. > > GAE uses multi-node container, so it uses serializer to propagate the > session from one container to another.. However, it looks like either > GAE or the container that GAE uses seems to use > HttpSessionBindingListener to fire serialization, which means that if > I call setAttribute then update the object, any information modified > after the setAttribute() is called will be lost. > HttpSessionBindingListener is only called when setAttribute is > invoked, and that's when all of the data is serialized and copied to > other container. > > In order for it to be more consistent with single node container, it > should serialize session after servlet completes processing each > request - not inside HttpSessionBindingListener. > > I am pretty sure I am missing some *fine notes* on J2EE specification, > or maybe there is already a work around for this, but having to modify > my application so that setAttribute will be called at the end of the > request would introduce a change to a specification for our framework > and I'd rather not have to do that if I don't have to.. > > Thanks! > Soichi -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
