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: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
smime.p7s
Description: S/MIME cryptographic signature