问题描述
写贴出提示八月11,20145:09:24下午org.apache.catalina.startup.HostConfigdeployDirectory信息:DeployingwebapplicationdirectoryROOT八月11,20145:09:24下午org.apache.coyote.http11.Http11Protocolstart信息:StartingCoyoteHTTP/1.1onhttp-8888八月11,20145:09:24下午org.apache.jk.common.ChannelSocketinit信息:JK:ajp13listeningon/0.0.0.0:8009八月11,20145:09:24下午org.apache.jk.server.JkMainstart信息:JkrunningID=0time=1/20config=null八月11,20145:09:24下午org.apache.catalina.startup.Catalinastart信息:Serverstartupin12881ms八月11,20145:09:44下午org.apache.catalina.startup.HostConfigcheckResources信息:Reloadingcontext[/jike]八月11,20145:09:44下午org.apache.catalina.core.ApplicationContextlog信息:ClosingSpringrootWebApplicationContext八月11,20145:09:45下午org.apache.catalina.loader.WebappClassLoaderclearReferencesJdbc严重:Thewebapplication[/jike]registeredtheJDBCdriver[com.mysql.jdbc.Driver]butfailedtounregisteritwhenthewebapplicationwasstopped.Topreventamemoryleak,theJDBCDriverhasbeenforciblyunregistered.八月11,20145:09:45下午org.apache.catalina.loader.WebappClassLoaderclearReferencesJdbc严重:Thewebapplication[/jike]registeredtheJDBCdriver[org.logicalcobwebs.proxool.ProxoolDriver]butfailedtounregisteritwhenthewebapplicationwasstopped.Topreventamemoryleak,theJDBCDriverhasbeenforciblyunregistered.八月11,20145:09:45下午org.apache.catalina.loader.WebappClassLoaderclearReferencesThreads严重:Thewebapplication[/jike]appearstohavestartedathreadnamed[MySQLStatementCancellationTimer]buthasfailedtostopit.Thisisverylikelytocreateamemoryleak.八月11,20145:09:45下午org.apache.catalina.loader.WebappClassLoaderclearReferencesThreads严重:Thewebapplication[/jike]appearstohavestartedathreadnamed[StoresessionCacheSpoolThread]buthasfailedtostopit.Thisisverylikelytocreateamemoryleak.八月11,20145:09:45下午org.apache.catalina.loader.WebappClassLoaderclearReferencesThreads严重:Thewebapplication[/jike]appearstohavestartedathreadnamed[StoresessionCacheExpiryThread]buthasfailedtostopit.Thisisverylikelytocreateamemoryleak.八月11,20145:09:46下午org.apache.catalina.core.ApplicationContextlog信息:InitializingSpringrootWebApplicationContext
我使用的数据源<beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><propertyname="driverClass"value="com.mysql.jdbc.Driver"/><propertyname="jdbcUrl"value="jdbc:mysql://localhost:3306/jike"/><propertyname="user"value="root"/><propertyname="password"value="root"/><!--ConnectionPoolingInfo--><propertyname="initialPoolSize"value="5"></property><propertyname="maxIdleTime"value="100"></property><propertyname="maxPoolSize"value="50"></property><propertyname="minPoolSize"value="5"></property></bean>
eh缓存的配置<beanid="cacheManager"class="net.sf.ehcache.CacheManager"></bean><cachename="sessionCache"maxElementsInMemory="1000"eternal="false"overflowToDisk="true"diskPersistent="false"timeToIdleSeconds="300"timeToLiveSeconds="300"diskExpiryThreadIntervalSeconds="120"memoryStoreEvictionPolicy="FIFO"/>
tomcat第一次启东市正常启动,但是reload项目是就有最上面的严重错误,reload一次到不碍事,多了就会内存溢出,异常我就不贴了。Tomcat:Causedby:java.lang.OutOfMemoryError:PermGenspace;很明显内存泄露,但是我不知道如何解决,求大神分析一下啊
解决方案
解决方案二:
Spring的项目稍微有点儿大的时候,在reload的时候就会内存溢出,它reload的时候不是完全释放,所以最好不要reload,重启
解决方案三:
+此外,为了缓解症状,可以调整JVM启动时候的堆栈空间空间-XMS-XMX
解决方案四:
这个问题之前论坛上出现过,不要在tomcat运行中reload,停掉tomcat,重新启动就可以了
解决方案五:
引用1楼himlyx的回复:
Spring的项目稍微有点儿大的时候,在reload的时候就会内存溢出,它reload的时候不是完全释放,所以最好不要reload,重启
引用3楼magi1201的回复:
这个问题之前论坛上出现过,不要在tomcat运行中reload,停掉tomcat,重新启动就可以了
每次重启多麻烦啊,这个会不会影响性能啊
解决方案六:
引用4楼aaaabbbccd9876的回复:
Quote: 引用1楼himlyx的回复:
Spring的项目稍微有点儿大的时候,在reload的时候就会内存溢出,它reload的时候不是完全释放,所以最好不要reload,重启引用3楼magi1201的回复:
这个问题之前论坛上出现过,不要在tomcat运行中reload,停掉tomcat,重新启动就可以了每次重启多麻烦啊,这个会不会影响性能啊
哪有在生产环境上reload的,都是重启。少用reload的那个功能,坑多
解决方案七:
引用4楼aaaabbbccd9876的回复:
Quote: 引用1楼himlyx的回复:
Spring的项目稍微有点儿大的时候,在reload的时候就会内存溢出,它reload的时候不是完全释放,所以最好不要reload,重启引用3楼magi1201的回复:
这个问题之前论坛上出现过,不要在tomcat运行中reload,停掉tomcat,重新启动就可以了每次重启多麻烦啊,这个会不会影响性能啊
我一般习惯重启,reload的内存泄露是一个原因,再就是缓存的问题。所以一般习惯停掉tomcat,删除缓存,然后重启性能问题,这个没有过多的考虑过,开发过程中习惯了就好了
解决方案八:
二楼+三楼=正解