Что такое хороший инструмент для расследования использования Соединения с базой данных в Java?
Разработчик поддерживает сложную программу Java, которая ocassionally исчерпывает количество доступных Соединений с базой данных. Так как проблема является спорадической, было бы полезно знать, какой поток открыл многочисленные связи для базы данных, чтобы сфокусировать усилие в этой области.
В конце корректная фиксация, кажется, для перезаписи программы, чтобы снова использовать соединения и не открыть многочисленные связи на поток.
Я спрашиваю, что инструменты должны разработчик иметь на его панели инструментов, чтобы быть в состоянии исследовать ресурсы т.е. Соединения с базой данных, которые были выделены потоком.
Посмотрите log4jdbc. Он позволяет вам просмотреть все, что происходит в jdbc, включая открытие/закрытие соединений, а также информацию о номере соединения.
Кто-то показал мне ConconLeakfinder недавно, «простой инструмент для утечек подключения JDBC в коде Java». Я сам не проверил это, но это должно позволить вам , чтобы увидеть, кто не закрыл соединение после использования . См. Соединение + утечка + как + к + find.htm .
Но Действительно, вам следует конкончаться с использованием соединительного бассейна (например C3P0 ).
Бассейны соединения могут дать вам некоторую диагностику. Например, проверьте свойство DEBUGUNRETURNEDCONSNUCTICTACTTRACES для бассейна соединения C3P0:
http://www.mchange.com/projects/c3p0/index.html#debugunreturnuedConnectionStacktraces
P6SPY - это каркас с открытым исходным кодом для поддержки приложений, которые перехватывают и необязательно модифицируют операторы базы данных.
из http://www.p6spy.com/about.html
Распределение P6SPY включает в себя следующие модули: