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:1347)
>        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(StandardSession.java
> :1478)
>        at
>
> org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.
> java:948)
>        at
>
> org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:51
> 7)
>        at
>
> org.apache.catalina.session.StandardManager.unload(StandardManager.java:463)
>        at
> org.apache.catalina.session.StandardManager.stop(StandardManager.java:667)
>        at
> org.apache.catalina.core.StandardContext.stop(StandardContext.java:4360)
>        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.java:39
> )
>        at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
> .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
>

Reply via email to