I'm referring to this document on : http://www.onjava.com/pub/a/onjava/2004/04/14/clustering.html?page=2 The words "Serializable" here would mean for session replication, right ? CMIIW. On 8/17/05, Christoph Kutzinski <[EMAIL PROTECTED]> wrote: > > Hi Nishant, > > where did you read that <distributable> will *enforce* serializability? > AFAIK <distributable> "only" means that your sessions can be distributed > to different tomcat nodes (i.e. a cluster). It doesn't enforce anything, > you have to make sure that your session attributes are serializable by > yourself. > > I've done this for my testing environment with a SessionListener: > > public class SessionListener implements HttpSessionListener, > HttpSessionAttributeListener { > > private ObjectOutputStream stream = new ObjectOutputStream(new > OutputStream() { > public void write(int b) {} > }); > > public void attributeAdded(HttpSessionBindingEvent evt) { > > if (LOCAL_DEBUG) { > // try to serialize attribute > Object o = evt.getValue(); > synchronized (stream) { > try { > stream.writeObject(o); > } catch (IOException e) { > System.err.println(evt.getName() + " is not serializable: " + > e.getMessage()); > e.printStackTrace(); > } > } > } > } > > ... > } > > I disable LOCAL_DEBUG in the production environment, because trying to > serialize every attribute is probably to expensive under heavy load. > > > @Lintang: > > That wouldn't help any. If you put your attributes (which are not > serializable) into a HashMap (which CAN (!) be serializable) the > resulting object (map + attribute) still wouldn't be serializable. > Serializable is more than just implementing the java.io.Serializable > interface. > > > greetings, > > Christoph > > > > > Lintang JP wrote: > > hi Nishant, > > You might want to put all your session variable inside HashMap or other > > datatypes that implements Serializable, rather than put it just in a > single > > variable. Refer to the javadocs, what are those Serializable data types > are. > > Or maybe you can build your own class with something like this : > > public class StoredSessionValue implements Serializable { > > // your session variable goes here > > // your setter and getter method for those variables goes here > > } > > > > You did right on your <distributable/> tags. > > On 8/17/05, Nishant Deshpande <[EMAIL PROTECTED]> wrote: > > > >>Hoping for some help from the tomcat experts on this list. > >> > >>I want to ensure all objects stored in sessions are serializable. > >> > >>I read that I can put the <distributable/> tag in my web.xml file to > >>'enforce' this. > >> > >>But I don't see any enforcing happening. I assumed it would throw > >>exceptions at runtime when I did 'setAttribute("xxx", > >>SomeNonSerializableObject)'. > >> > >>I have put 'distributable' in > >> > >>web.xml: <web-app> ... <distributable/> ... </web-app> > >> > >>I also have the following in server.xml: > >> > >><DefaultContext reloadable="true" allowLinking="true"> > >> > >><Loader className="org.apache.catalina.loader.DevLoader" > >>reloadable="true" debug="1"/> > >><Manager className="org.apache.catalina.session.PersistentManager" > >>pathname="/cv/data/tmp" debug="5" saveOnRestart="true" > >>distributable="true"> > >><Store className="org.apache.catalina.session.FileStore" > >>directory="/cv/data/tmp" > >>debug="5"/> > >></Manager> > >> > >></DefaultContext> > >> > >> > >>Am I missing something? How is the serializability enforced? > >> > >>Also another question: the serialization does not happen in the > >>directory i specify for Store above, rather it happens in the > >>$CATALINA_HOME/work/Catalina/* directories. Any ideas about this one? > >> > >>Thanks, > >> > >>Nishant > >> > >>--------------------------------------------------------------------- > >>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
-- ------------------------------------------------------------------- http://www.psychotazkia.or.id