的MySQL在Tomcat中
问题描述:
创建内存泄漏
我已经为web应用程序的tomcat里面一个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.
的MySQL在Tomcat中
我使用Tomcat 6.0.24,与MySQL连接器5.1 .10 ,,,
有没有办法清理它,所以tomcat将不会显示SEVERE
消息?
答
这不是泄漏,或者至少它是一个无关紧要的东西。如果你有一个单例对象(JDBC驱动程序),并且它在应用程序结束之前从不发布,那么它是否重要?
数据库将在给定时间后关闭所有未决连接。
如果你感到困扰,你可以通过重写close方法这种方法解决它:
public class XBasicDataSource extends BasicDataSource {
@Override
public synchronized void close() throws SQLException {
DriverManager.deregisterDriver(DriverManager.getDriver(url));
super.close();
}
}
和使用您的XBasicDataSource。
这不完全是内存泄漏,它是Tomcat阻止其中一个的警告。 – Yishai 2010-05-31 01:37:33