Как выяснить утечки соединения? - PullRequest
0 голосов
/ 20 марта 2009

У нас есть веб-приложение Struts, которое развернуто на сервере приложений Sun. Несмотря на то, что мы проводим нагрузочное тестирование / тестирование интеграции системы в средах разработки. Сценарий утечки соединения отсутствует.

Но, тем не менее, в производственной среде. Видна утечка соединения, поскольку количество используемых соединений продолжает увеличиваться.

Кроме кодов приложений, какой другой сценарий может вызвать утечку соединения?

Ответы [ 2 ]

0 голосов
/ 23 августа 2012

Утечки соединения - одна из самых распространенных проблем. Основной причиной этого является не закрытие результирующего набора, соединение после использования.

try{
//perform jdbc operations
}catch(Exception e){
//perform error operations
}finally{
//close the connections 
}

Также есть способы, с помощью которых вы можете включить ведение журнала для утечек соединения, но это повлияет на производительность.

0 голосов
/ 20 марта 2009

Как вы это измеряете? Вы смотрите на количество соединений в базе данных? Размер пула на сервере приложений? Какую базу данных вы используете?

Я не понимаю, "Нет сценария утечки соединения". Если вы неправильно закрываете все свои ResultSets, Statements и Connections (в отдельных блоках try / catch в блоке finally в области действия метода, в обратном порядке создания экземпляров), вы можете столкнуться с утечками.

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

Я бы предположил, что ваши тестовые сценарии нереалистичны. Если вы не наблюдаете такого поведения в производственной среде, либо ваши тесты не запускают поведение, либо тесты и развертывания prod не идентичны.

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