Я использую пул соединений dbcp в tomcat (версия 7), и где-то в моем коде есть утечка соединения. Через короткий промежуток времени запрос на новое соединение возвращает следующее исключение:
«Невозможно получить соединение, ошибка пула. Тайм-аут ожидания для незанятого объекта»
Я вернулся к своему коду, и мне это кажется все соединения закрываются должным образом (не все так говорят ...).
Чтобы отладить это, я добавил следующие свойства в context.xml:
logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="300"
Теперь тег ресурса выглядит так:
<Resource name="jdbc/findata" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="5" maxWait="10000"
username="root" password="xxxxxx" driverClassName="com.mysql.jdbc.Driver"
logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="300"
url="jdbc:mysql://localhost:3306/findata"/>
Затем я перезапустил tomcat и начал посещать веб-страницы, пока не появилось сообщение об ошибке (в окне браузера). Однако я еще не смог выяснить, куда свойство logAbandoned записывает свою информацию. Я' Я просматриваю
/usr/share/apache-tomcat-7.0.11/logs
, но единственный недавно измененный файл журнала там -
localhost_access_log.2011-04-18.txt
Любая помощь приветствуется.