Have you tried any of this on a fresh install of Tomcat? I think you mentioned that you have made changes to the Persistance Manaager in server.xml.
Try downloading and installing a fresh instance and run the test again. There is a similar test war file (attachment) that looks tests the contextCreated/Destroyed methods here: http://issues.apache.org/bugzilla/show_bug.cgi?id=29521 For what it's worth. Serialization of sessions is working for me with 5.0.28 running as an NT Service on windows. -Ben On Fri, 2004-11-05 at 11:20, Steve Kirk wrote: > Thanks Ben, have looked at your war, and my test code covers the same as > yours plus some of the other Listener events. The sessionCreated and > sessionDestroyed events work fine on my code (5.0.28). The problem is that > the other events I mentioned are not called - e.g. contextDestroyed. > > > If your object (or any of the objects contained within it) are not > > serializable) tomcat will quietly not save it. > > ok that's interesting and perhaps a little surprising given that the docs > say that they MUST be. I've also tried adding the distributable attribute > to the webapp as indicated here > http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/manager.html#Restart% > 20Persistence > to see if that causes stricter behaviour (e.g. throwing an exception when TC > tries to serialize session objects), but this appears to make no difference > in my situation. > > > try creating a real simple object that implements Serializable and see > > if it survives a restart. > > In effect I have already done that by restarting TC, then browsing webapp > pages as a user that does not log in. In this case I do not assign any > objects to the session (I have checked this using session.getAttributeNames > in my SessionLogger to check that there are none). Even in this case TC > does not serialize to SESSIONS.ser on shutdown. So I don't think that the > problem is serialisability....? > > Also, still can't work out why SESSIONS.ser is only accessed when a new > warfile causes a reload and not otherwise. > > > -----Original Message----- > > From: Ben Souther [mailto:[EMAIL PROTECTED] > > Sent: Friday 05 November 2004 15:08 > > To: Tomcat Users List > > Subject: RE: sessionS info persistence when restart Tomcat > > > > > > On Fri, 2004-11-05 at 09:06, Steve Kirk wrote: > > > > SessionDestroyed shouldn't be called when tomcat shuts down. > > > > > > good point. doh! but if I've understood correctly, > > shouldn't other methods > > > of my SessionLogger be called? namely sessionWillPassivate, > > > contextDestroyed (and possibly finalize although I'm not > > 100% confident of > > > that). > > contextDestroyed does get called when you shut down tomcat. I > > don't know > > about sessionWillPassivate. > > > > > > > > > I just tested with a > > > > clean install of 5.0.29 with a similar listener to the one > > > > you describe. > > > > SessionDestroyed was not called when I stopped TC but the > > > > sessions were > > > > still valid when I started it up. I can give you the war > > file if you > > > > like. > > > > > > yes please. email it to me off list if you prefer. > > > > You can grab it here: > > http://www.souther.us/sessionTest.war > > > > I ran it in a clean install of TC5.0.29. > > There are two jsps and a sessionListener. > > test.jsp shows you the current sessionID. > > kill.jsp invalidates the session. > > The session listener prints to stdout (catalina.out) > > when a session is created or destroyed. > > > > I was able to stop and restart TC and maintain the same session. > > sessionDestroyed was not called. > > > > You could easily add to it to test for sessionWillPassivate(). > > > > > > > > > > > > > > > > > Do all of the attributes that you're adding to your > > session implement > > > > Serializable? > > > > > > I did spot that issue late on just before my last post. So > > I checked and > > > only one object is ever stored in the session - a "User" > > class of my own. > > > Its fields are all of type String, java.sql.Timestamp or > > int. I added > > > "implements Serializable" to it (I think this is all that > > was required?) but > > > this made no difference. Also, I have tried stopping TC > > when a session has > > > been created but *no* attributes have been added to it, and > > the problem is > > > the same. > > > > > > In any case though, if serialisation was the problem, > > shouldn't I see some > > > kind of error message from TC along the lines that it > > cannot serialise an > > > object in a session? Also I can't work out why it only > > complains that it > > > can't find SESSIONS.ser when it reloads the webapp? > > > > > If your object (or any of the objects contained within it) are not > > serializable) tomcat will quietly not save it. > > > > try creating a real simple object that implements Serializable and see > > if it survives a restart. > > > > -Ben > > > > > > > > > > --------------------------------------------------------------------- > > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]