У меня есть приложение, которое через некоторое время начинает давать мне внутреннюю ошибку сервера. Некоторые люди, которых я попросил, сказали мне, что это может быть из-за утечки Connection в моем приложении. Я начал поиск и нашел этот запрос для имитации утечки соединения.Найти утечку связи в приложении Java
select LAST_CALL_ET, SQL_TEXT, username, machine, to_char(logon_time, 'ddMon hh24:mi') as login, SQL_HASH_VALUE, PREV_HASH_VALUE, status from v$session, v$sql where username='USERNAME' and HASH_VALUE = PREV_HASH_VALUE order by last_call_et desc;
.
Я отслеживал свое приложение с этим запросом и закрывал все просочившиеся соединения для запроса, показанного в этом результате. Но теперь мое приложение начинает давать такую же ошибку для еще менее неактивных сеансов. Я использую правильный запрос, чтобы узнать об активной утечке сеанса/соединения? Кто-то сказало мне условие HASH_VALUE = PREV_HASH_VALUE в этом запросе не так, но я не знаю об этих колонках (не много знаний DB.)
Спасибо
Вы закрываете все объекты 'Statement',' PreparedStatement', 'ResultSet' и' Connection'? – copeg
@copeg Да Сэр, В настоящее время я ищу все запросы, которые входят в результат, и я закрываю все. Но иногда я вижу тот же запрос в неактивном результате сессии, блокируя некоторые другие запросы, даже если соединение и другие объекты закрыты. – aatif
Является ли это веб-приложение или автономное приложение? В какой библиотеке пула соединений он используется? –