MySQL在Tomcat中创建内存泄漏

时间:2010-05-31 01:35:42

标签: java mysql tomcat

我在tomcat中为web-app设置了JDBCRealm,当我重新加载它时,我从tomcat获得了这个:
SEVERE: A web application registered the JBDC 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.

我使用tomcat 6.0.24,使用MySQL Connector 5.1.10 ,,,

有没有办法清理它,所以tomcat不会显示SEVERE消息?

1 个答案:

答案 0 :(得分:0)

这不是泄漏,或者至少它是无关紧要的。如果你有一个单例对象(JDBC驱动程序)并且在应用程序完成之前它永远不会被释放,那有关吗? 数据库将在给定的时间后关闭所有挂起的连接。

如果它真的困扰你,你可以通过以这种方式覆盖close方法来修复它:

public class XBasicDataSource extends BasicDataSource {
    @Override
    public synchronized void close() throws SQLException {
        DriverManager.deregisterDriver(DriverManager.getDriver(url));
        super.close();
    }
}

并使用您的XBasicDataSource。