У меня проект Spring MVC + Mysql (JDBC 4) + c3p0 0.9.2.
В c3p0 maxIdleTime
значение равно 240 (то есть 4 минуты) и wait_timeout
в my.ini Mysql до 30 секунд.
В соответствии с c3p0
maxIdleTime: (по умолчанию: 0) секунды соединение может оставаться в пуле, но не использоваться до сброса. Ноль означает, что время простоя соединения никогда не истекает.
Согласно Mysql
wait_timeout: Количество секунд, в течение которых сервер ожидает активности на неинтерактивном соединении, прежде чем закрывать его.
Теперь у меня есть некоторые дураки по этому вопросу: (некоторые ответы мне известны, просто хотел убедиться, что я прав или нет)
sleep
согласно mysql (?) wait_timeout
на 30 секунд (он приходит к этому значению, наблюдая за сервером БД, так что очень мало соединений находится в спящем режиме), это означает, что соединение может находиться в режиме sleep
в течение 30 секунд, после чего оно будет быть закрытым, но с другой стороны c3p0 имеет значение maxIdleTime
, равное 240 секундам, так что же это за maxIdleTime
настройка, играющая роль в этом случае. interactive_timeout
?