服务器因[Pool-Cleaner]而停止响应:Tomcat连接池但未能阻止它。这很可能会造成内存泄漏

时间:2016-06-09 09:15:50

标签: java apache tomcat memory-leaks

问题:

  

org.apache.catalina.loader.WebappClassLoader - Web应用程序[/ ...]似乎已经启动了一个名为[[Pool-Cleaner]:Tomcat Connection Pool [...]但未能阻止它的线程。这很可能会造成内存泄漏。

我在tomcat服务器(tomcat-7.0.23)中使用jdk1.6.0_45部署的应用程序很少,而服务器i在apache webserver中注册。在盯着服务器之后,它工作正常,直到我突然得到所有应用程序的上述错误,然后我的tomcat为所有请求提供404,但tomcat进程仍在运行,并且在浏览器中显示“FILE NOT FOUND” 。

我们使用具有以下配置的Tomcat连接池:

<Resource 
name="Project1" 
auth="Container" 
type="javax.sql.DataSource" 
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
url="DatabaseName" 
username="_username" 
password="_Password" 
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
initialSize="40"
maxActive="300" 
maxIdle="250" 
minIdle="90"
maxWait="10000" 
minEvictableIdleTimeMillis="300000" 
timeBetweenEvictionRunsMillis="120000"
validationInterval="30000"
validationQuery="SELECT 1" 
testOnBorrow="true" 
logAbandoned="true"
removeAbandoned="true" 
removeAbandonedTimeout="60" 
abandonWhenPercentageFull="50"
jdbcInterceptors="ResetAbandonedTimer"
/>

配置在context.xml文件中。

1 个答案:

答案 0 :(得分:1)

内存泄漏警告是正确的。它引用了几周前修复的Tomcat 7.0.x中的已知问题(r1744702),并将包含在7.0.70之后。