问题:
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"
/>
并且配置在上下文.xml文件中。
内存泄漏警告是正确的。它指的是 Tomcat 7.0.x 中的一个已知问题,该问题已在几周前修复 (r1744702) 中,并将包含在 7.0.70 及更高版本中。