我用谷歌搜索了很多,但是找不到答案。

我有一个Maven,Spring MVC Web应用程序,它连接到MySQL数据库。
问题是每次我重新部署(停止,取消部署然后部署)我的war文件时,都会在日志文件中得到以下异常:

SEVERE: The web application [/XYZ-0.0.0] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
SEVERE: The web application [/XYZ-0.0.0] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.

重新部署+ -5之后,我收到java.lang.OutOfMemoryError: PermGen space错误,必须重新启动Tomcat-有时我必须重新启动计算机。

我查看过: 为了防止内存泄漏,已强制取消注册JDBC驱动程序并尝试了选项3(不确定如何或以何种方式移动到Tomcat的/lib目录,即我是否“移动” spring-jdbc或mysql-连接器-java吗?)

我已经实现了一个连接池,试图解决此问题,但是并没有帮助。

我使用Netbeans,但是我已经安装了Tomcat 7的“ Windows版本”,即没有catalina.bat文件的版本,因此无法启动和运行分析器。 (我不想重新安装Tomcat ...)

请帮忙-如何找到并修复内存泄漏?

#1楼 票数:0

您可以在ServletContextlistener的contextDestroyed方法内手动卸载所有JDBC驱动程序。 您可以在此处找到示例代码: 为了防止内存泄漏,已强制注销JDBC驱动程序

您还应该考虑将JDBC驱动程序放到TOMCAT_HOME / lib文件夹中,而不是在WAR中提供它,这样驱动程序只加载一次,而不是在每次重新部署时加载一次,对于每个Web应用程序都加载一次。

在Tomcat管理器中单击“查找泄漏”按钮后收到的消息有点误导。 该消息只是表明仍有一些来自先前部署实例的类仍在加载,并且垃圾收集器尚未卸载它们,但可能稍后再卸载它们。

我最近回答了一个类似的问题,并解释了如何在与tomcat相关的Web应用程序中查找内存泄漏: Tomcat内存泄漏

  ask by TungstenX translate from so

未解决问题?本站智能推荐:

1回复

Tomcat + Mysql - 无法找到java:comp

我正在尝试使用tomcat + mysql来开发Web应用程序,这是我的配置: persistence.xml中 web.xml中 context.xml(在tomcat / config下) 我的架构是EntityMappings。 运行后我遇到了一些错误
1回复

与mysql,hibernate和tomcat7连接时出错

我已经使用Spring,Hibernate和MySQL开发了一个Web应用程序。 一切都在本地服务器上运行良好,但是当我启用它并尝试登录系统时,出现以下错误。
3回复

tomcat7 - jdbc datasource - 这很可能会造成内存泄漏

当tomcat关闭时,我在catalina.out日志文件中收到以下消息。 我正在使用Tomcat 7.x和Tomcat JDBC数据源。 第一个声称DataSource已被强制取消注册,因此没问题。 但是很奇怪因为我已经像这样配置了destroy-method: 不知道为什
1回复

如何修复Tomcat服务器中的内存泄漏问题

我有关于Tomcat服务器中的内存泄漏的问题。 当我取消部署并重新部署错误消息时,战争如下所示: 以下Web应用程序已停止(重新加载,取消部署),但以前运行的类仍然在内存中加载,从而导致内存泄漏(使用分析器确认):/ myWebApplication 我该如何修复它并正常部
1回复

Spring + Atmosphere + Tomcat线程泄漏

我面临一个奇怪的问题,无法解决该问题。 我正在尝试实现服务器推送通知。 通知应广播给所有连接的客户端(最多10个,这是一个Intranet Web应用程序),而不是ANDROID 4.2浏览器。 通知运行良好,所有内容都被推送,但是大气层会创建大量的tomcat线程,最终在请求大约3-
4回复

内存泄漏停止或重新部署 - Spring 3.1.2,Hibernate 4.1.0,Spring Data-Jpa 1.1.0,Tomcat 7.0.30

编辑1 2013/06/07 - 虽然我仍然遇到这个问题,但它仍然只会影响重新部署。 自最初的问题发布以来,我们已经升级了一些东西。 这是我们的新版本(仍然展示了手头的问题): 正如您所看到的,它基本上只是一个Spring Framework bump和Spring(Data)
1回复

真的是内存泄漏吗?

在Tomcat 7中取消部署我的Web应用程序时,以下消息显示在文件catalina.out中: 我已经使用jstack来获取Java线程转储。 我在上面搜索了Thread-10 ,但没有找到任何参考。 是否认为应该有引用** Thread-10 **的内容? 那真的是内存泄漏
1回复

使用VisualVM分析内存泄漏

我的Web应用程序存在内存泄漏问题,该问题托管在Apache Tomcat 7.0.22服务器上。 我尝试使用VisualVM 1.3.8识别内存泄漏,但无法找到根本原因。 以下是我的发现: 第一代Web应用程序中存在一个类,并且具有Avg。 年龄25.0。 OQL查询: se