You may consider to use EJB 3 Stateful Session Bean, if you want to achieve high availability.
I think it's strange to serialize Manager. Kengkaj On Fri, Mar 20, 2009 at 6:53 PM, Leffingwell, Jonathan R CTR FRCSE, JAX 7.2.2 <jonathan.leffingwell....@navy.mil> wrote: > Here's my concern: > > Let's say that I am running two instances of Tomcat in a cluster: Server A > and Server B. While a user is in the web application on Server A, Server A > goes down. I need for Server B to have all of the session information for > the user that Server A had, so the user will not notice anything while > he/she is using the web app. That's why we're using clustering. > > If the web application is properly exited, then I don't care if the session > information is saved upon exiting the app. It's probably better if the > session info is NOT saved upon properly exiting the app. But what I want > to > know is this: If I use any of the previously mentioned solutions (i.e. the > <Manager pathname=""/> or the <Manager > className="org.apache.catalina.session.PersistentManager" > saveOnRestart="false" /> approaches), will my clustering still work as I > need it to? > > Thank you for your help, everyone! > > Jonathan > > > -----Original Message----- > From: charlie bird [mailto:zebthe...@yahoo.co.uk] > Sent: Friday, March 20, 2009 7:46 AM > To: user-java@ibatis.apache.org > Subject: Re: "Cannot serialize session attribute ..." > > > Alternatively you could disable session serialization completely by adding > the following line to your tomcat application xml: > > <Manager pathname=""/> > > Only if you're not bothered about retrieving the sessions on restart of > course > > > --- On Fri, 20/3/09, Kengkaj Sathianpantarit <kengka...@gmail.com> wrote: > > > From: Kengkaj Sathianpantarit <kengka...@gmail.com> > > Subject: Re: "Cannot serialize session attribute ..." > > To: user-java@ibatis.apache.org > > Date: Friday, 20 March, 2009, 11:18 AM Mark transient in declaration - > > transient StandardDaoManager standardDaoManager; > > > > Kengkaj > > > > On Fri, Mar 20, 2009 at 6:13 PM, > > Leffingwell, Jonathan R CTR FRCSE, JAX 7.2.2 > > <jonathan.leffingwell....@navy.mil> > > wrote: > > > > What does that mean, "set > > reference to it transient"? > > > > > > > > > > > > -----Original Message----- > > > > From: Nicholoz Koka Kiknadze [mailto:kikna...@gmail.com] > > > > Sent: Thursday, March 19, 2009 3:30 PM > > > > To: user-java@ibatis.apache.org > > > > Subject: Re: "Cannot serialize session attribute ..." > > > > > > > > My first thought is that maybe StandardDaoManager can not be > > serializable as > > > > it deals with database connections. Maybe makes sense to set reference > > to it > > > > transient? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, Mar 19, 2009 at 2:55 PM, Leffingwell, Jonathan R CTR FRCSE, > > JAX > > > > 7.2.2 <jonathan.leffingwell....@navy.mil> > > wrote: > > > > > > > > > > > > I am running a web app in IBM RAD 7 with a Tomcat 5.5.26 > > server, > > > > with > > > > clustering (two Tomcat instances). When shutting down the > > Tomcat > > > > server(s), > > > > I get the following warning: > > > > > > > > Mar 19, 2009 2:52:43 PM > > org.apache.catalina.session.StandardSession > > > > writeObject > > > > WARNING: Cannot serialize session attribute createXXXManager > > for > > > > session > > > > 8B1876E5C5C54B242E4256674843600B > > > > java.io.NotSerializableException: > > > > com.ibatis.dao.engine.impl.StandardDaoManager > > > > at > > > > > > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081) > > > > at > > > > > > > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: > > 1375) > > > > at > > > > > > > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:134 > > 7) > > > > at > > > > > > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java > > :1290) > > > > at > > > > > > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > > > > at > > > > > > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) > > > > at > > > > > > > > org.apache.catalina.session.StandardSession.writeObject(StandardSessio > > n.java > > > > :1478) > > > > at > > > > > > > > > > org.apache.catalina.session.StandardSession.writeObjectData(StandardSession. > > > > java:948) > > > > at > > > > > > > > org.apache.catalina.session.StandardManager.doUnload(StandardManager.j > > ava:51 > > > > 7) > > > > at > > > > > > > > org.apache.catalina.session.StandardManager.unload(StandardManager.jav > > a:463) > > > > at > > > > > > > > org.apache.catalina.session.StandardManager.stop(StandardManager.java: > > 667) > > > > at > > > > > > > > org.apache.catalina.core.StandardContext.stop(StandardContext.java:436 > > 0) > > > > at > > > > > > org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1067) > > > > at > > > > > > org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1067) > > > > at > > > > > > > > org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448) > > > > at > > > > > > > > org.apache.catalina.core.StandardService.stop(StandardService.java:510 > > ) > > > > at > > > > > > > > org.apache.catalina.core.StandardServer.stop(StandardServer.java:734) > > > > at > > > > org.apache.catalina.startup.Catalina.stop(Catalina.java:602) > > > > at > > > > org.apache.catalina.startup.Catalina.start(Catalina.java:577) > > > > at > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > > > Method) > > > > at > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j > > ava:39 > > > > ) > > > > at > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess > > orImpl > > > > .java:25) > > > > at > > java.lang.reflect.Method.invoke(Method.java:585) > > > > at > > > > org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) > > > > at > > > > org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) > > > > > > > > > > > > All of my managers, including createXXXManager, inherit from a > > > > serializable > > > > class BaseManager, but if I'm reading this correctly, it looks > > like > > > > the > > > > iBatis class StandardDaoManager is not serializable. I can't > > edit > > > > that > > > > class, of course. > > > > > > > > Here's what I want to know: > > > > > > > > 1. If I put the following code in my context.xml file, will > > it > > > > prevent > > > > clustering from working properly? > > > > > > > > <Manager > > className="org.apache.catalina.session.PersistentManager" > > > > saveOnRestart="false" /> > > > > > > > > > > > > 2. If the aforementioned context.xml snippet keeps clustering > > from > > > > working, > > > > what options do I have to stop the warnings but keep > > clustering > > > > working > > > > properly? > > > > > > > > > > > > Thanks for any insight! > > > > > > > > Jonathan > > > > > > > > > > > > > > > > > > > > > > > >