Also, I should mention that the commons-logging / log4j "leak" is because the shutdown process is not correctly followed. You should have an application context listener which 'shuts down' the logger when the application's context is destroyed, i.e.,
public class ApplicationLifecycleListener implements ServletContextListener { private final static Log logger = LogFactory.getLog(ApplicationLifecycleListener.class); public void contextInitialized(ServletContextEvent sce) { logger.info("Application context initialized."); } public void contextDestroyed(ServletContextEvent sce) { logger.info("Application context destroyed."); LogFactory.release(Thread.currentThread().getContextClassLoader()); } } -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 07, 2006 1:09 PM To: Tomcat Users List Subject: Re: Tomcat 5.0.28 memory leak Yes I tried JProbe and during memory debugging I see char[] size going up.If I look into bug databases there are various reasons.Some talk to commons-logging others about session persistance. I am getting the following error in my log4j log for the application.Also I noticed if I run tomcat as an application it doesn't break though I do have memory increase slowly but if I start it as service it breaks even with a few refreshes of the page. [2006-03-07 11:00:39,734] Thread-1 org.apache.catalina.session.ManagerBase ERROR - IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: aaa.pm.server.beans.MemberData java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: aaa.pm.server.beans.MemberData at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1268) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:322) at java.util.LinkedList.readObject(LinkedList.java:702) 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:324) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:809) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1733) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1636) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1264) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:322) at org.apache.catalina.session.StandardSession.readObject(StandardSession.java: 1342) at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.j ava:885) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:416) at org.apache.catalina.session.StandardManager.load(StandardManager.java:343) at org.apache.catalina.session.StandardManager.start(StandardManager.java:657) at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:499) at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:3 15) at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:635) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java: 216) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:119) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4290) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:8 23) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.j ava:277) at org.apache.catalina.core.StandardHost.install(StandardHost.java:832) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701 ) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091) at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478) at org.apache.catalina.core.StandardService.start(StandardService.java:480) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) 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:324) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) Caused by: java.io.NotSerializableException: aaa.pm.server.beans.MemberData at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) at java.util.LinkedList.writeObject(LinkedList.java:681) 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:324) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:780) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1294) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1245) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java :1415) at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession. java:902) at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:53 9) at org.apache.catalina.session.StandardManager.unload(StandardManager.java:485) at org.apache.catalina.session.StandardManager.stop(StandardManager.java:687) at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4496) at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:952) at org.apache.catalina.core.StandardHostDeployer.remove(StandardHostDeployer.ja va:670) at org.apache.catalina.core.StandardHost.remove(StandardHost.java:946) at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1028) at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1005) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:351) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:119) at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1123) at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1135) at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:483) at org.apache.catalina.core.StandardService.stop(StandardService.java:542) at org.apache.catalina.core.StandardServer.stop(StandardServer.java:2347) at org.apache.catalina.startup.Catalina.stop(Catalina.java:605) at org.apache.catalina.startup.Catalina.start(Catalina.java:580) ... 6 more [2006-03-07 11:00:39,781] Thread-1 org.apache.catalina.session.ManagerBase ERROR - Exception loading sessions from persistent storage java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: aaa.pm.server.beans.MemberData at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1268) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:322) at java.util.LinkedList.readObject(LinkedList.java:702) 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:324) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:809) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1733) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1636) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1264) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:322) at org.apache.catalina.session.StandardSession.readObject(StandardSession.java: 1342) at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.j ava:885) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:416) at org.apache.catalina.session.StandardManager.load(StandardManager.java:343) at org.apache.catalina.session.StandardManager.start(StandardManager.java:657) at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:499) at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:3 15) at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:635) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java: 216) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:119) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4290) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:8 23) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.j ava:277) at org.apache.catalina.core.StandardHost.install(StandardHost.java:832) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701 ) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091) at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478) at org.apache.catalina.core.StandardService.start(StandardService.java:480) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) 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:324) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) Caused by: java.io.NotSerializableException: aaa.pm.server.beans.MemberData at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) at java.util.LinkedList.writeObject(LinkedList.java:681) 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:324) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:780) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1294) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1245) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java :1415) at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession. java:902) at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:53 9) at org.apache.catalina.session.StandardManager.unload(StandardManager.java:485) at org.apache.catalina.session.StandardManager.stop(StandardManager.java:687) at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4496) at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:952) at org.apache.catalina.core.StandardHostDeployer.remove(StandardHostDeployer.ja va:670) at org.apache.catalina.core.StandardHost.remove(StandardHost.java:946) at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1028) at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1005) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:351) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:119) at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1123) at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1135) at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:483) at org.apache.catalina.core.StandardService.stop(StandardService.java:542) at org.apache.catalina.core.StandardServer.stop(StandardServer.java:2347) at org.apache.catalina.startup.Catalina.stop(Catalina.java:605) at org.apache.catalina.startup.Catalina.start(Catalina.java:580) ... 6 more |---------+----------------------------> | | Mark Thomas | | | <[EMAIL PROTECTED]| | | > | | | | | | 03/07/2006 12:02 | | | PM | | | Please respond to| | | "Tomcat Users | | | List" | |---------+----------------------------> >--------------------------------------------------------------------------- ---------------------------------------------------| | | | To: Tomcat Users List <users@tomcat.apache.org> | | cc: | | Subject: Re: Tomcat 5.0.28 memory leak | >--------------------------------------------------------------------------- ---------------------------------------------------| [EMAIL PROTECTED] wrote: > Hello All, > > I posted this question before.I am using tomcat5.0.28 somehow my > application blows the service with memory increasing really quicly > even with one user. > If I test same on tomcat 4.1.24 it runs fine. > Any known leaks with this version ???I think tomcat 5.0 has problems.I have > read issues about the bug with logging mechanism.I tried the > workarounds but no luck:( Have you tried profiling your application? Mark --------------------------------------------------------------------- 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]