Подтвердить что ты не робот

Использование c3p0.idle_test_period.

Я новичок в c3op и смущен насчет использования:

c3p0.idle_test_period

В этой ссылке: Как настроить пул соединений C3P0

idleTestPeriod :  Must be set in hibernate.cfg.xml (or hibernate.properties), Hibernate default:  
0, If this is a number greater than 0, c3p0 will test all idle, pooled but unchecked-out  
connections, every this number of seconds.

Какова цель такого теста (idel, объединенные соединения) и связь между c3p0.idle_test_period и c3p0.timeout?

4b9b3361

Ответ 1

Сервер базы данных может закрыть соединение на своей стороне через определенное время, что вызвало некоторую ошибку в вашем приложении, поскольку оно попытается отправить запрос на соединение, которое больше не доступно на стороне сервера.

Чтобы избежать этого, вы можете позволить пулу периодически проверять соединение (подумайте о ping) для его достоверности. Для этого используется idle_test_period.

timeout - это время, после которого пул удалит соединение из пула, поскольку соединение не было извлечено (использовано) некоторое время, а пул содержит больше соединений, чем c3pO.min_size.

Ответ 2

Я думаю, что этот параметр используется в спящем режиме, чтобы проверять объединенное соединение через каждые несколько секунд. Рассмотрим сценарий, если на стороне базы данных изменен пароль. Hibernate уже объединяет соединения по старому паролю. Таким образом, нарушение безопасности имеет пул с неправильным паролем. Поэтому, когда спящий режим будет проверяться через несколько секунд. Это приведет к недействительности этого объединенного соединения.