Соединения Hikari и активные рабочие места AS400
Я использую менеджер пулов соединений Hikari для запроса некоторых таблиц на компьютере с AS400.
Я установил минимум 1 пул соединений и максимум 10. Я запрашиваю 5 таблиц одновременно.
Проблема заключается в том, что, несмотря на использование метода getConnection() HikariDataSource перед запросом и использование метода Connection close() после каждого запроса, при переходе к WRKACTJOB я вижу 10 активных заданий, предположительно по одному на соединение, пока не будет достигнуто максимальное количество подключений к пулу соединений.
Как мне очистить неиспользуемые соединения \ задания?
Спасибо
2 ответа
Смысл пула соединений состоит в том, чтобы устранить издержки на установление соединений с базой данных. Это достигается путем поддержания "пула" постоянно активных соединений, готовых к использованию.
Если ваши рабочие нагрузки "spikey" с длительными периодами отсутствия активности, но случайными периодами большого количества активности, я бы предложил установить idleTimeout, например, 1 минуту (60000 мс). Если вы также установите для параметра MinimumIdle значение 0, то после завершения периодической рабочей нагрузки все соединения будут закрыты в течение приблизительно одной минуты.
Я хочу, чтобы соединения были удалены из пула соединений после закрытия соединения... Я хочу, чтобы эти соединения были удалены после запросов.
Я понимаю. Не используйте пул соединений. По замыслу, пул соединений будет держать пул открытым (и доступным) Connection
(Ы). Для поведения, которое вы хотите, используйте обычный источник данных без пула.