я вижу, что Idle-соединения не очищаются. Я не уверен, в чем причина?
InitialSize-10 maxtotal-20 maxidle-10 minidle-0 minEvictableIdleTimeMillis-30min numTestsPerEvictionRun-60min numTestsPerEvictionRun-20 testOnBorrow-true testWhileIdle-true validationQuery-выберите 1 из двойного
Из различных источников я понимаю, что maxtotal-maxactive подключений к источнику данных равно 20 в приведенном выше случае.
maxidle — количество незанятых соединений, которые могут оставаться в пуле. они удаляются подметальной машиной. В приведенном выше случае соединение простаивает, если оно остается бездействующим в течение 30 минут. Если подметальная машина запускается каждые 60 минут, она проверяет 20 незанятых соединений и очищает неиспользуемые соединения. Бездействующие соединения, превышающие это значение, будут немедленно закрыты.
Верно ли приведенное выше понимание?
Я использую BasicDataSourceMXBean для печати статистики
{"NumActive":"0","NumIdle":"10","isClosed":"false","maxTotal":"20","MaxIdle":"10","MinIdle":"0"}
Бездействующие соединения никогда не очищаются, даже если трафика нет. Что-то не так в приведенной выше конфигурации?
Также что такое minIdle и когда мы должны установить для него ненулевое значение?
Недавно обновлена версия гибернации с 3.6.0.Final до 4.3.11.Final и весна до 4.2.9 из более старой весенней версии.
Раньше неиспользуемые соединения очищались. Но после обновления неиспользуемые соединения не очищаются.
testWhileIdle
, а неtestOnIdle
, чтобы неиспользуемые соединения были исключены? - person Naros   schedule 09.03.2017