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.

Reply via email to