MySQL создает утечку памяти в Tomcat - PullRequest
1 голос
/ 31 мая 2010

Я установил JDBCRealm для веб-приложения внутри tomcat, и когда я его перезагружал, я получил это от 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 голосов
/ 31 мая 2010

Это не утечка, или, по крайней мере, это не имеет значения. Если у вас есть одноэлементный объект (драйвер JDBC), и он никогда не будет выпущен до завершения работы приложения, имеет ли это значение?
База данных закроет все ожидающие соединения через определенный промежуток времени.

Если это действительно беспокоит вас, вы можете исправить это, переопределив метод close следующим образом:

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

И используйте свой XBasicDataSource.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...