Мониторинг для Commons DBCP?

Огромное веб-приложение в моем Tomcat иногда начинает использовать слишком много DBCP-соединений, что приводит к проблемам.
Чтобы исследовать, я хочу точно знать в каждый момент времени, какой поток/метод удерживает соединение с пулом. Не обязательно в режиме реального времени, посмертный анализ в порядке.

Я тщетно искал такой инструмент мониторинга DBCP, поэтому я собираюсь написать свой.
(если есть интерес, я могу сделать его открытым)

Вот мой план:

  • Изменить PoolingDataSource.getConnection для регистрации "DBCP+1 <thread-id>"
  • Изменить DelegatingConnection.close для регистрации "DBCP-1 <thread-id>"
  • Напишите небольшой скрипт для создания этого простого CSV для визуализации:

Мониторинг DBCP

ВОПРОС:
Я пропустил какую-то концепцию Commons-DBCP 1.4, которая делает эту идею недействительной?
Или я заново изобретаю колесо?


person Nicolas Raoul    schedule 26.07.2012    source источник


Ответы (1)


Такого инструмента не было, поэтому я его создал:

https://github.com/nicolas-raoul/Commons-DBCP-monitoring

Он отслеживает использование Commons DBCP (использует/ожидает подключения) и позволяет создавать такие графики:

введите здесь описание изображения

введите здесь описание изображения

Я спросил действительны ли мои предположения в списке рассылки Commons DBCP.

person Nicolas Raoul    schedule 06.08.2012