服务器因 [Pool-Cleaner]:Tomcat 连接池而停止响应,但未能停止它。这很可能造成内存泄漏
Posted
技术标签:
【中文标题】服务器因 [Pool-Cleaner]:Tomcat 连接池而停止响应,但未能停止它。这很可能造成内存泄漏【英文标题】:Server Stop responding because of [Pool-Cleaner]:Tomcat Connection Pool but has failed to stop it. This is very likely to create a memory leak 【发布时间】:2016-06-09 09:15:49 【问题描述】:问题:
org.apache.catalina.loader.WebappClassLoader - Web 应用程序 [/...] 似乎已经启动了一个名为 [[Pool-Cleaner]:Tomcat Connection Pool[...] 的线程,但未能阻止它。这很可能会造成内存泄漏。
我很少有应用程序部署在带有 jdk1.6.0_45 的 tomcat 服务器(tomcat-7.0.23)中,而我在 apache 网络服务器上注册的服务器。启动服务器后,它工作正常,直到我突然分别为所有应用程序分别收到上述错误,然后我的 tomcat 为所有请求提供 404,但 tomcat 进程仍在运行,并且在浏览器中显示“未找到文件” .
我们使用 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】:内存泄漏警告是正确的。它指的是几周前修复的 Tomcat 7.0.x 中的一个已知问题 (r1744702),并将包含在 7.0.70 之后的版本中。
【讨论】:
以上是关于服务器因 [Pool-Cleaner]:Tomcat 连接池而停止响应,但未能停止它。这很可能造成内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章